游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3004|回复: 5

请问有没有什么方法能够取得idirect3dtexture9的宽度跟高度?

[复制链接]

42

主题

115

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2011-6-14 11:40:00 | 显示全部楼层 |阅读模式
我用GetDesc获取的都是1024之类的2的N次方

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-6-15 11:30:00 | 显示全部楼层

Re:请问有没有什么方法能够取得idirect3dtexture9的宽度跟高度?

你得用D3DXCreateTextureFromFileEx来载入图像,并且要加上D3DX_DEFAULT_NONPOW2参数!
还得确定显卡是支持非2幂尺寸纹理的~~

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2011-6-15 11:58:00 | 显示全部楼层

Re: Re:请问有没有什么方法能够取得idirect3dtexture9的宽度跟

artint: Re:请问有没有什么方法能够取得idirect3dtexture9的宽度跟高度?

你得用D3DXCreateTextureFromFileEx来载入图像,并且要加上D3DX_DEFAULT_NONPOW2参数!
还得确定显卡是支持非2幂尺寸纹理的~~


使用D3DXCreateTextureFromFileEx()的好处就是,不管你的显卡支不支持非2的次幂图像,它总能创建成功,并且不会帮你扩充尺寸。这是我测试的结果,这恐怕就是“D3DX”的好处吧。
缺点就是没办法从一个bmp缓存加载纹理。(D3DXCreateTextureFromMemoryEx()似乎也实现不了)

如果尺寸已经被D3D给扩充成了2的次幂,好像就没办法获取去他当初的尺寸了。
个人猜测。
请问楼主获取其原尺寸有何用意? [em24]

42

主题

115

帖子

141

积分

注册会员

Rank: 2

积分
141
 楼主| 发表于 2011-6-15 13:35:00 | 显示全部楼层

Re: Re: Re:请问有没有什么方法能够取得idirect3dtexture9的宽

轩辕崇正: Re: Re:请问有没有什么方法能够取得idirect3dtexture9的宽度跟高度?



使用D3DXCreateTextureFromFileEx()的好处就是,不管你的显卡支不支持非2的次幂图像,它总能创建成功,...

2d游戏有时需要用上 [em9]

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2011-6-15 14:03:00 | 显示全部楼层

Re:请问有没有什么方法能够取得idirect3dtexture9的宽度跟高度?

能用2的幂最好还是用这种尺寸,其他尺寸不见得会占用更少的显存.

67

主题

390

帖子

392

积分

中级会员

Rank: 3Rank: 3

积分
392
发表于 2011-6-15 14:57:00 | 显示全部楼层

Re: Re: Re: Re:请问有没有什么方法能够取得idirect3dtexture9的

lizelglg: Re: Re: Re:请问有没有什么方法能够取得idirect3dtexture9的宽度跟高度?


2d游戏有时需要用上 [em9]


1:如果你使用D3DXCreateTextureFromFileEx()创建纹理时,宽高填的是D3DX_DEFAULT,那么创建的纹理会被扩充成2的次幂,但他返回给你的D3DXIMAGE_INFO数据是原尺寸。
2:如果你不想让D3D扩充尺寸,那宽高就填D3DX_DEFAULT_NONPOW2,这样你怎么获取尺寸,他都不是2的次幂。
3:如果你只能按照第1条来做,那你就只能在创建纹理的时候,或者创建纹理之前获取其尺寸,否则创建完了之后再获取,可能就找不到原尺寸的信息了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-8 12:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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