窗口变化

mjm_d 2003-09-10 03:42:47
各位大哥:
我使用VC7.0+DX9.0。在江一个CView窗口作为dx的视口时,发现,我生成的一个三角形(其他形状也是)在窗口发生大小变化WM_SIZE时,也在变形,我想能不能将他设置成与窗口大小无关,窗口外的自动剪去而不是发生变形去适应它。dx sdk的例子大家都知道,反正我是不知所云,100分不要嫌少,
...全文
46 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyan_qd 2003-12-26
  • 打赏
  • 举报
回复
微软的方法就是每当Resize的时候Reset所有D3D设备,和Device Lost的时候同等处理
mjm_d 2003-12-21
  • 打赏
  • 举报
回复
我试过了,好像还是不行,有人能解释一下微软的代码马?
mjm_d 2003-10-02
  • 打赏
  • 举报
回复
大家的意思是我每次在ON_SIZE时只要重新setviewport一下?
并且用固定的值
谢谢大家,我又试了好多次,还是不行
微软自己的SDK就行
可是太复杂了
YangLin1ST(杨家枪法第六十七代传人)的方法我试一试看,先谢谢大家


nonocast 2003-09-20
  • 打赏
  • 举报
回复
只要viewport在ON_SIZE时不改变就不会发生任何变化
Icykorpio 2003-09-19
  • 打赏
  • 举报
回复
杨兄,没这么复杂吧,它这个只要固定viewport就可以了
YangLin1ST 2003-09-18
  • 打赏
  • 举报
回复
1,CreateDevice 创建一个比较大的BackBuffer,比如是1280*1024
2,根据CView窗口的大小和卷动条的位置得到 一个相对于BackBuffer的矩形R。
3,根据矩形R得出 viewport的信息,SetViewport
4,渲染场景
5,Present 的时候把 矩形R 类的数据 显示到CView窗口上。
说明,这样做的目的,一来可以使窗口发生大小变化时,里面图象不变形,与窗口大小无关。其次可以是让窗口之外的物体不渲染,提高显示的速度。 :)
Icykorpio 2003-09-18
  • 打赏
  • 举报
回复
你固定viewport就可以了
mjm_d 2003-09-18
  • 打赏
  • 举报
回复
up一下
supwjhuLoveCjj 2003-09-14
  • 打赏
  • 举报
回复
共同学习
mjm_d 2003-09-14
  • 打赏
  • 举报
回复
有人又例程吗?简单点的,但要有上面的功能的
Leon8086 2003-09-12
  • 打赏
  • 举报
回复
大概size的时候你没有更新你的viewport和你的project matrix吧。
mjm_d 2003-09-12
  • 打赏
  • 举报
回复
好像还是不行,不过谢谢了
mjm_d 2003-09-11
  • 打赏
  • 举报
回复
DX SDK中使用一个叫reset的函数,但是我使用时总是报错,他对参数有要求吗?
Analyst 2003-09-11
  • 打赏
  • 举报
回复
在最后Present的时候指定一下pDestRect就可以了。
pDevice->Present(NULL, CRect(0,0,640,480),NULL,NULL);
这和投影矩阵设置没有任何关系。
寻开心 2003-09-10
  • 打赏
  • 举报
回复
这个是你投影矩阵设置方式决定的
找到代码看看那个部分是如何设置的吧

窗口变化显示内容给随变化是必然的
你能够做到的是可以通过设置,让只有X方向变化的时候三角形才变化,另外一个方向变化的时候只是调节可见范围。通过设置FOV和纵横比例就可以做到
看看帮助就明白了

8,305

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧