Dx9 纹理奇怪问题。
有一张79 x 117像素图
width = 79;
height = 117;
D3DXCreateTexture( pD3DDevice, width, height,
1, // Mip levels
0, // Usage
D3DFMT_A1R5G5B5, // Format
D3DPOOL_MANAGED, // Memory pool
&pTex ) )
创建后使用
pTex->GetLevelDesc(0, &TDesc)
TDesc.Width 为 79
但是lockrect 后Pitch 为160
问题一,D3DXCreateTexture不是自动优化吗?不应该是宽度和高度优化到128吗?如果MipLevels那里写成0会自动优化到128,但是2D游戏,不需要MIP啊。
问题二,当lockrect时候Pitch 为160,然后按每行填充像素,我的机器显示图片正确,但是在虚拟机XP系统中,那种显卡图片就不正确了,每行像素差4个BYTE那种每行错位,把pitch换成 79*2虚拟机上就没问题了,但是在我机器上又是错位, 请问大神高手们是什么问题啊?