Generazione di sublevel di trame mappa MIP

Un driver di visualizzazione indica il supporto della generazione automatica dei sublevel delle trame della mappa MIP impostando il bit DDCAPS2_CANAUTOGENMIPMAP del membro dwCaps2 della struttura DDCORECAPS . Il driver specifica questa struttura DDCORECAPS nel membro ddCaps di una struttura DD_HALINFO . DD_HALINFO viene restituito dalla funzione DrvGetDirectDrawInfo del driver. Il driver di visualizzazione indica anche se un particolare formato di superficie supporta la generazione automatica di sottolivello impostando il flag D3DFORMAT_OP_AUTOGENMIPMAP nel membro dwOperations della struttura DDPIXELFORMAT per il formato.

Quando viene creata una superficie di trama, il runtime Direct3D imposta il bit DDSCAPS3_AUTOGENMIPMAP del membro dwCaps3 della struttura DDSCAPSEX (DDSCAPS2) per indicare che i sublevel della mappa MIP per questa trama possono essere generati automaticamente. Se Direct3D indirizza alcune trame per generare automaticamente i sublevel della mappa MIP e alcune trame da non generare automaticamente, il driver può eseguire solo operazioni blit (D3DDP2OP_TEXBLT) su queste trame, come descritto negli scenari seguenti:

  • Il driver non può eseguire il blit da una trama di origine che genera automaticamente il mapping MIP a una trama di destinazione che non lo esegue.

  • Se il driver esegue il blit da una trama di origine che non genera automaticamente il mapping MIP a una trama di destinazione che lo esegue, il driver blitta solo il livello di corrispondenza più alto. I sublevel della trama di origine vengono ignorati. È possibile generare i sottolivello di destinazione.

  • Analogamente, se il driver si adatta dalle trame di origine a destinazione che generano automaticamente mappe MIP, il driver blitta solo il livello di corrispondenza più alto. I sublevel della trama di origine vengono ignorati. È possibile generare i sottolivello di destinazione.

Per generare i sublevel di una trama della mappa MIP, il driver riceve un comando D3DDP2OP_GENERATEMIPSUBLEVELS insieme a una struttura D3DHAL_DP2GENERATEMIPSUBLEVELS . Per ricevere questo comando, il formato della superficie della trama deve esporre il flag D3DFORMAT_OP_AUTOGENMIPMAP.

Per le risorse gestite dal driver, quando il driver rimuove e sostituisce una risorsa in memoria video, il driver deve usare l'ultimo tipo di filtro set per generare automaticamente i sottolivello. Poiché Direct3D non controlla la rimozione e la sostituzione della risorsa, Direct3D non invia un comando D3DDP2OP_GENERATEMIPSUBLEVELS al driver.

Il runtime Direct3D non può chiamare la funzione DdLock del driver o usare qualsiasi altro DDI per accedere ai sottolivello di una trama della mappa MIP generata automaticamente. Ciò implica che i sublevel per le trame MIP-map generate automaticamente, come le trame leggere della mappa MIP, sono "implicite" e possono essere specificate dal driver in base alle esigenze. Il driver non è necessario per specificare strutture di dati di superficie complete. Si noti, tuttavia, che Direct3D deve essere in grado di chiamare le funzioni DdLock o DdBlt del driver, inviare il comando D3DDP2OP_BLT o usare qualsiasi altra DDI (solo per trame gestite dal driver, trame dinamiche o formati specifici del fornitore) per accedere al livello superiore di una trama miP-map generata automaticamente.