Condividi tramite


Aree dirty texture (Direct3D 9)

Le applicazioni possono ottimizzare il subset di una trama copiato specificando le aree "dirty" nelle trame. Solo le aree contrassegnate come dirty vengono copiate da una chiamata a IDirect3DDevice9::UpdateTexture. Tuttavia, le aree dirty possono essere espanse per ottimizzare l'allineamento. Quando viene creata una trama, l'intera trama viene considerata dirty. Solo le operazioni seguenti influiscono sullo stato dirty di una trama:

Le aree dirty vengono impostate sul livello superiore di una trama mipmapped e IDirect3DDevice9::UpdateTexture può espandere l'area dirty verso il basso nella catena mip per ridurre al minimo il numero di byte copiati per ogni sottolivello. Si noti che le coordinate dell'area dirty sublevel vengono arrotondate verso l'esterno, ovvero le parti frazionarie vengono arrotondate verso il bordo più vicino della trama.

Poiché ogni tipo di trama ha tipi diversi di aree dirty, esistono metodi per ogni tipo di trama. Le trame 2D usano rettangolo sporco e le trame del volume usano caselle.

Passando NULL per i parametri pDirtyRect o pDirtyBox per i metodi precedenti espande l'area dirty per coprire l'intera trama.

Ogni metodo di blocco può accettare D3DLOCK_NO_DIRTY_UPDATE, che impedisce qualsiasi modifica allo stato dirty della trama. Per altre informazioni, vedere Locking Resources (Direct3D 9).

Quando sono disponibili altre informazioni sul set reale di aree modificate durante un'operazione di blocco, le applicazioni devono usare D3DLOCK_NO_DIRTY_UPDATE. Si noti che solo un blocco o una copia in una trama sublevel (ovvero senza blocco o copia nel livello superiore) non aggiorna le aree dirty per tale trama. Le applicazioni assumono la stessa responsabilità di aggiornare le aree dirty quando bloccano i livelli inferiori senza bloccare il livello superiore.

concetti di base di texturing