游戏开发论坛

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

请教:为什么ID3DXSprite不能把图片刚好填满窗口?

[复制链接]

6

主题

99

帖子

99

积分

注册会员

Rank: 2

积分
99
发表于 2007-5-14 17:03:00 | 显示全部楼层 |阅读模式
我载入 512*512 的纹理,再用ID3DXSprite把它画到 512*512 的窗口中,但显示出现偏差,
如图所示,纹理超出了窗口。当扩大窗口时,纹理会有更多跑出窗口,缩小时反而可以全部显示,
但都不是刚好填满窗口,会有背景色露出来。很不好看哦,请高人解决,谢谢。 [em24] [em24] [em24]

6

主题

99

帖子

99

积分

注册会员

Rank: 2

积分
99
 楼主| 发表于 2007-5-14 17:08:00 | 显示全部楼层

Re: 请教:为什么ID3DXSprite不能把图片刚好填满窗口?

我不懂如何放图片,再试下。

6

主题

99

帖子

99

积分

注册会员

Rank: 2

积分
99
 楼主| 发表于 2007-5-14 17:09:00 | 显示全部楼层

Re:请教:为什么ID3DXSprite不能把图片刚好填满窗口?

还是放不了,算了,如题,请教。

6

主题

471

帖子

1047

积分

金牌会员

Rank: 6Rank: 6

积分
1047
发表于 2007-5-14 18:11:00 | 显示全部楼层

Re:请教:为什么ID3DXSprite不能把图片刚好填满窗口?

在CreateWindow前用AdjustWindowRectEx调整窗口大小,
可能你的窗口大小包含了边框.实际的显示区域并不是512x512.

6

主题

99

帖子

99

积分

注册会员

Rank: 2

积分
99
 楼主| 发表于 2007-5-14 21:51:00 | 显示全部楼层

Re: Re:请教:为什么ID3DXSprite不能把图片刚好填满窗口?

不行啊,filx兄,AdjustWindowRectEx没起到作用,RECT没有改变。
我感觉不是窗口大小的问题,当我拉动窗口右下角扩大窗口时,图片右下角就会越超出窗口显示区域,相反,缩小窗口时图片显示会越完整,但效果很别扭。
还请各位费心。

12

主题

50

帖子

70

积分

注册会员

Rank: 2

积分
70
发表于 2007-5-15 09:17:00 | 显示全部楼层

Re:请教:为什么ID3DXSprite不能把图片刚好填满窗口?

你纹理是怎样Create的?
D3DXCreateTextureFromFileExA
把参数      
DWORD                     Filter,
DWORD                     MipFilter,
全部换成D3DX_FILTER_NONE试试看。

6

主题

99

帖子

99

积分

注册会员

Rank: 2

积分
99
 楼主| 发表于 2007-5-15 16:11:00 | 显示全部楼层

Re:请教:为什么ID3DXSprite不能把图片刚好填满窗口?

现在问题解决了。
我是这样做的:用GetClientRect()获取窗口客户区rect,再对ID3DXSprite设置缩放矩阵。
在开始图片是刚好填满窗口的,但拉伸窗口时,图片显示不正常。
所以我想,是不是每次拉伸窗口都改变缩放矩阵造成的呢?
试一下,固定那个缩放比例,再拉伸窗口,OK,解决了。
至于为什么,还没有想得很清楚,以后再补充。
无论用简单的D3DXCreateTextureFromFile还是复杂的D3DXCreateTextureFromFileEx都没问题。
谢谢filx兄的提醒和pyphehe兄的关注,感激ing……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 10:40

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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