Partilhar via


Regiões sujas de textura (Direct3D 9)

Os aplicativos podem otimizar qual subconjunto de uma textura é copiado especificando regiões "sujo" em texturas. Somente as regiões marcadas como sujo são copiadas por uma chamada para IDirect3DDevice9::UpdateTexture. No entanto, as regiões sujo podem ser expandidas para otimizar o alinhamento. Quando uma textura é criada, toda a textura é considerada sujo. Somente as seguintes operações afetam o estado sujo de uma textura:

As regiões sujas são definidas no nível superior de uma textura mipmapped e IDirect3DDevice9::UpdateTexture pode expandir a região sujo para baixo da cadeia de mip, a fim de minimizar o número de bytes copiados para cada subnível. Observe que as coordenadas de subnível sujo região são arredondadas para fora, ou seja, suas partes fracionárias são arredondadas em direção à borda mais próxima da textura.

Como cada tipo de textura tem tipos diferentes de sujo regiões, há métodos em cada tipo de textura. As texturas 2D usam sujo retângulo e as texturas de volume usam caixas.

Passar NULL para os parâmetros pDirtyRect ou pDirtyBox para os métodos acima expande a região sujo para cobrir toda a textura.

Cada método de bloqueio pode usar D3DLOCK_NO_DIRTY_UPDATE, o que impede alterações no estado sujo da textura. Para obter mais informações, consulte Recursos de bloqueio (Direct3D 9).

Quando mais informações sobre o conjunto verdadeiro de regiões alteradas durante uma operação de bloqueio estiverem disponíveis, os aplicativos deverão usar D3DLOCK_NO_DIRTY_UPDATE. Observe que um bloqueio ou uma cópia somente para um subnível de textura (ou seja, sem bloquear ou copiar para o nível superior) não atualiza as regiões sujo para essa textura. Os aplicativos assumem a mesma responsabilidade pela atualização sujo regiões quando bloqueiam níveis mais baixos sem bloquear o nível mais alto.

Conceitos básicos de texturing