Red de conocimiento de abogados - Derecho de sociedades - Cómo obtener el tamaño real de la textura IDirect3DTexture9

Cómo obtener el tamaño real de la textura IDirect3DTexture9

Desafortunadamente, una vez que genera un objeto IDirect3DTexture9 en dx, es básicamente imposible obtener el tamaño original de la imagen. Por ejemplo, usando GetLevelDesc, puede obtener el tamaño de la superficie subyacente y la longitud. y el ancho de la superficie debe ser 2. La enésima potencia es mayor o igual que el tamaño original del gráfico, por lo que si su gráfico no es originalmente 2 elevado a la enésima potencia, este número es inexacto. Otra idea es obtener la CC de la superficie subyacente y luego obtener el mapa de bits de CC. . . Es agotador y puede tener el mismo resultado que el método anterior (no lo he probado, así que supongo). Al configurar el mapa de vértices, dx debe conocer el tamaño del gráfico original; de lo contrario, no se dibujará de acuerdo con las coordenadas del mapa, pero parece que no podemos obtenerlo desde afuera. De hecho, este número solo se puede guardar al cargar la textura: 1. Si lo carga usted mismo y lo escribe en la textura usted mismo, esto no es un problema. 2. Si usa D3DXCreateTextureFromFile o D3DXCreateTextureFromFileInMemory, entonces no tiene esta oportunidad. La solución es utilizar la versión Ex de la función de creación, D3DXCreateTextureFromFileEx o D3DXCreateTextureFromFileInMemoryEx. Estas dos funciones pueden recibir un parámetro de tipo D3DXIMAGE_INFO*. Una vez que la función se ejecuta correctamente, la estructura D3DXIMAGE_INFO apuntada por el parámetro se completa con los datos correctos. en el que el ancho y el alto son el tamaño de textura original correcto. Este método es más conveniente. Puede que existan otros métodos.