游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4303|回复: 6

调用ID3DXLine::Draw画线时自动重启,大概会是什么原因?

[复制链接]

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2004-1-27 11:27:00 | 显示全部楼层 |阅读模式
我在Direct3D\Tutorials\Tut01_CreateDevice中加入画线对象,
LPD3DXLINE g_pd3dLine = NULL;
CreateDevice之后
D3DXCreateLine( g_pd3dDevice, &g_pd3dLine );
然后Render时
D3DXVECTOR2 Vector[2] = { D3DXVECTOR2(0.0f,0.0f), D3DXVECTOR2(100.0f,100.0f) };
g_pd3dLine->Draw( Vector, 2, 0xffffffff );

第一次Draw,一切正常,显示出线条了,可第二次Draw,完蛋……自动重启,试了N次还是一样。 [em6](机子好伤)。。。
有哪位高手使用过这个接口的,教教我啊。

0

主题

130

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2004-1-27 11:54:00 | 显示全部楼层

Re:调用ID3DXLine::Draw画线时自动重启,大概会是什么原因?

可能是顶点使用的和声明的不对应.
顶点缓冲越界.
你可以DEBUG的DX跑跑,

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2004-1-27 12:19:00 | 显示全部楼层

Re:调用ID3DXLine::Draw画线时自动重启,大概会是什么原因?

是这里吗?D3DXVECTOR2 Vector[2] = { D3DXVECTOR2(0.0f,0.0f), D3DXVECTOR2(100.0f,100.0f) };
设置成(0,0)(0,0)也一样,应该不会越界啊,
DEBUG模式,因为死机,所以无法调试。。。

我画线段就只有3个步骤,会不会是漏了一些重要的步骤?
声明:LPD3DXLINE g_pd3dLine = NULL;
创建:D3DXCreateLine( g_pd3dDevice, &g_pd3dLine );
画线:D3DXVECTOR2 Vector[2] = { D3DXVECTOR2(0.0f,0.0f), D3DXVECTOR2(100.0f,100.0f) };
         g_pd3dLine->Draw( Vector, 2, 0xffffffff );

0

主题

130

帖子

130

积分

注册会员

Rank: 2

积分
130
发表于 2004-1-27 13:22:00 | 显示全部楼层

Re:调用ID3DXLine::Draw画线时自动重启,大概会是什么原因?

我说的DEBUG是指DX的运行方式为DEBUG,在控制面板->DX中应该可以设的,这样应该不会死机.
这个接口我没用过,从他的帮助来看你这样写似乎没有问题,如果你能找到例子,可以看看他如何写的.

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2004-1-27 18:56:00 | 显示全部楼层

Re:调用ID3DXLine::Draw画线时自动重启,大概会是什么原因?

是指Debug/Retail吗?本来就是选Debug的。
例子总算找到了!
http://masafumi-t.cool.ne.jp/directx9/3dtips/d3d09.htm
可惜是日文的……将就看了。

58

主题

281

帖子

281

积分

中级会员

Rank: 3Rank: 3

积分
281
QQ
发表于 2004-1-27 20:38:00 | 显示全部楼层

Re:调用ID3DXLine::Draw画线时自动重启,大概会是什么原因?

我晕了~~~!找了半天,问了半天,弄了半天,刚刚在另一台机上测试,却没问题~~
我的显卡是NVIDIA GeForce4 MX 440 with AGP8X,在WinXP上运行,照理说应该没问题,看来是驱动程序问题,
而且我加入这个ID3DXLine接口后,可执行文件一下增大了800K,
考虑到兼容性问题,我打算放弃这个了……其实画两个三角形来实现也不错~  [em10]

2

主题

30

帖子

30

积分

注册会员

Rank: 2

积分
30
发表于 2004-1-28 02:32:00 | 显示全部楼层

Re:调用ID3DXLine::Draw画线时自动重启,大概会是什么原因?

是不是pd3dLine->Draw()应该在
pd3dLine->Begin()和
pd3dLine->End()里面?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 00:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表