有谁知道DirectX中是否有一个函数来获取LPDIRECT3DTEXTURE9的尺寸?我只需要宽度和高度。如果没有,那么有人知道一种快速而肮脏的方式来实现这一目标吗?

最佳答案

LPDIRECT3DTEXTURE可能包含multiple images of different sizes。您必须指定想要的那个。通常,0是原始大小,其他是用于优化GPU性能的mipmap。

D3DSURFACE_DESC surfaceDesc;
int level = 0; //The level to get the width/height of (probably 0 if unsure)
myTexture->GetLevelDesc(level, &surfaceDesc);
size_t size = surfaceDesc.Width * surfaceDesc.Height;

09-26 09:27