Compartir a través de


Regiones sucias de textura (Direct3D 9)

Las aplicaciones pueden optimizar qué subconjunto de una textura se copia especificando regiones "desfasadas" en texturas. Solo las regiones marcadas como desfasadas se copian mediante una llamada a IDirect3DDevice9::UpdateTexture. Sin embargo, las regiones desfasadas se pueden expandir para optimizar la alineación. Cuando se crea una textura, toda la textura se considera desfasada. Solo las siguientes operaciones afectan al estado sucio de una textura:

Las regiones desfasadas se establecen en el nivel superior de una textura mipmapped y IDirect3DDevice9::UpdateTexture puede expandir la región desfasada por la cadena mip para minimizar el número de bytes copiados para cada subnivel. Tenga en cuenta que las coordenadas de la región subastadas se redondean hacia afuera, es decir, sus partes fraccionarios se redondean hacia el borde más cercano de la textura.

Dado que cada tipo de textura tiene diferentes tipos de regiones desfasadas, hay métodos en cada tipo de textura. Las texturas 2D usan rectángulo sucio y las texturas de volumen usan cuadros.

Pasar NULL para los parámetros pDirtyRect o pDirtyBox de los métodos anteriores expande la región desfasada para cubrir toda la textura.

Cada método de bloqueo puede tomar D3DLOCK_NO_DIRTY_UPDATE, lo que evita cualquier cambio en el estado sucio de la textura. Para obtener más información, vea Bloquear recursos (Direct3D 9).

Cuando hay más información sobre el conjunto verdadero de regiones que se cambian durante una operación de bloqueo, las aplicaciones deben usar D3DLOCK_NO_DIRTY_UPDATE. Tenga en cuenta que un bloqueo o una copia solo en un subvel de textura (es decir, sin bloquear o copiar en el nivel superior) no actualiza las regiones desfasadas para esa textura. Las aplicaciones asumen la misma responsabilidad de actualizar regiones desfasadas cuando bloquean niveles inferiores sin bloquear el nivel superior.

Conceptos básicos de texturización