以前没有特别注意,今天做了一个非2次方的图片的压缩,发现D3DXCreateTexture与LPDIRECT3DDEVICE8::CreateTexture在创建纹理的时候竟然有这样的区别
如:要创建一个200×200的纹理
用D3DXCreateTexture创建出来的纹理,再用GetLevelDesc来查询纹理信息,会发现,他已经优化过了尺寸信息,为256×256,Pitch也是256
如果用LPDIRECT3DDEVICE8::CreateTexture创建纹理的时候,用GetLevelDesc查询纹理信息,会发现纹理信息是200×200,Pitch也是200
暂时还不清楚,这个是否跟显卡也有关系……
纹理的填充问题:
如果我们用D3DXCreateTexture来创建一个200×200的纹理,填充时要一行一行的来写象素
就如我们创建了一个256×256的图片,而我们只是对左上角的200×200感兴趣而已