Application-Managed recursos e estratégias de alocação (Direct3D 9)
Os recursos gerenciados de vertex-buffer ou index-buffer não podem ser declarados dinâmicos especificando D3DUSAGE_DYNAMIC no momento da criação. Isso exigiria uma cópia adicional para cada modificação no conteúdo do buffer de vértice. Os buffers de vértice dinâmico destinam-se a renderizar geometria dinâmica e dados extraídos de árvores particionadas de espaço binário ou outras estruturas de dados de visibilidade. Isso pode ser feito através da pré-alocação de buffers do formato desejado. Esses recursos são então parcelados para dar suporte às necessidades do aplicativo por um gerenciador de recursos dentro do aplicativo. O número total de buffers de vértice dinâmicos é pequeno porque um aplicativo usará simultaneamente apenas alguns passos de vértice diferentes e porque um buffer de vértice diferente é necessário apenas para passadas exclusivas. Ao gerenciar recursos dinâmicos dessa maneira, certifique-se de que as demandas de alta frequência sobre os recursos não diminuam significativamente o desempenho do aplicativo.
Ao usar recursos gerenciados pelo Direct3D e aplicativos, aloque recursos gerenciados por aplicativos na memória D3DPOOL_DEFAULT antes de criar recursos gerenciados pelo Direct3D. Isso permite que o gerenciador de memória mantenha uma contagem precisa da memória disponível.
Tópicos relacionados