Partilhar via


D3DUSAGE

Opções de uso que identificam como os recursos devem ser usados.

A tabela a seguir resume as opções de uso disponíveis.

Constante Descrição
D3DUSAGE_AUTOGENMIPMAP
O recurso irá gerar automaticamente mipmaps. Consulte geração automática de Mipmaps (Direct3D 9). A geração automática de mipmaps não é suportada para texturas de volume e superfícies/texturas de estêncil de profundidade. Esse uso não é válido para um recurso na memória do sistema (D3DPOOL_SYSTEMMEM).
D3DUSAGE_DEPTHSTENCIL
O recurso será um buffer de estêncil de profundidade. D3DUSAGE_DEPTHSTENCIL só pode ser utilizado com D3DPOOL_DEFAULT.
D3DUSAGE_DMAP
O recurso será um mapa de deslocamento.
D3DUSAGE_DONOTCLIP
Definido para indicar que o conteúdo do buffer de vértice nunca exigirá recorte. Ao renderizar com buffers que têm esse sinalizador definido, o estado de renderização D3DRS_CLIPPING deve ser definido como false.
D3DUSAGE_DYNAMIC
Definido para indicar que o buffer de vértice requer o uso de memória dinâmica. Isso é útil para os drivers porque permite que eles decidam onde colocar o buffer. Em geral, os buffers de vértice estáticos são colocados na memória de vídeo e os buffers de vértice dinâmico são colocados na memória AGP. Observe que não há uso estático separado. Se você não especificar D3DUSAGE_DYNAMIC, o buffer de vértice se tornará estático. D3DUSAGE_DYNAMIC é rigorosamente aplicado através do D3DLOCK_DISCARD e D3DLOCK_NOOVERWRITE bandeiras de bloqueio. Como resultado, D3DLOCK_DISCARD e D3DLOCK_NOOVERWRITE são válidos apenas em buffers de vértice criados com D3DUSAGE_DYNAMIC. Eles não são sinalizadores válidos em buffers de vértice estáticos. Para obter mais informações, consulte Gerenciando recursos (Direct3D 9).
Para obter mais informações sobre como usar buffers de vértice dinâmicos, consulte Otimizações de desempenho (Direct3D 9).
D3DUSAGE_DYNAMIC e D3DPOOL_MANAGED são incompatíveis e não devem ser utilizados em conjunto. Ver D3DPOOL.
As texturas podem especificar D3DUSAGE_DYNAMIC. No entanto, texturas gerenciadas não podem usar D3DUSAGE_DYNAMIC. Para obter mais informações sobre texturas dinâmicas, consulte Usando texturas dinâmicas.
D3DUSAGE_NONSECURE
Permita que uma superfície compartilhada criada por um aplicativo seguro seja aberta por um aplicativo não seguro que tenha o identificador compartilhado.
Diferenças entre o Direct3D 9 e o Direct3D 9Ex: Este sinalizador está disponível apenas no Direct3D 9Ex.
D3DUSAGE_NPATCHES
Definido para indicar que o buffer de vértice deve ser usado para desenhar N-patches.
D3DUSAGE_POINTS
Definido para indicar que o vértice ou buffer de índice será usado para sprites de ponto de desenho. O buffer será carregado na memória do sistema se o processamento de vértice do software for necessário para emular sprites de ponto.
D3DUSAGE_RENDERTARGET
O recurso será um destino de renderização. D3DUSAGE_RENDERTARGET só pode ser utilizado com D3DPOOL_DEFAULT.
D3DUSAGE_RTPATCHES
Definido para indicar que o buffer de vértice deve ser usado para desenhar primitivos de alta ordem.
D3DUSAGE_SOFTWAREPROCESSING
Se este sinalizador for usado, o processamento de vértice é feito em software. Se esse sinalizador não for usado, o processamento de vértice será feito no hardware.
O sinalizador D3DUSAGE_SOFTWAREPROCESSING pode ser definido quando o processamento de vértice de modo misto ou software (D3DCREATE_MIXED_VERTEXPROCESSING / D3DCREATE_SOFTWARE_VERTEXPROCESSING) está ativado para esse dispositivo. D3DUSAGE_SOFTWAREPROCESSING deve ser definido para buffers a serem usados com o processamento de vértice de software no modo misto, mas não deve ser definido para o melhor desempenho possível ao usar o processamento de índice de hardware no modo misto (D3DCREATE_HARDWARE_VERTEXPROCESSING). No entanto, definir D3DUSAGE_SOFTWAREPROCESSING é a única opção quando um único buffer é usado com processamento de vértice de hardware e software. D3DUSAGE_SOFTWAREPROCESSING é permitido para dispositivos mistos e de software.
D3DUSAGE_SOFTWAREPROCESSING é usado com CheckDeviceFormat para descobrir se um determinado formato de textura pode ser usado como uma textura de vértice durante o processamento de vértice de software. Se puder, a textura deve ser criada em D3DPOOL_SCRATCH.
D3DUSAGE_TEXTAPI
Esse sinalizador de uso deve ser especificado para buffers de vértice e superfícies de origem, usados em chamadas para ComposeRects. As texturas criadas com esse sinalizador de uso não podem ser usadas para filtragem de textura. Os buffers de vértice, criados com esse sinalizador de uso, não podem ser usados como fontes de fluxo de entrada.
Diferenças entre o Direct3D 9 e o Direct3D 9Ex: Este sinalizador está disponível apenas no Direct3D 9Ex.
D3DUSAGE_WRITEONLY
Informa o sistema que o aplicativo grava somente no buffer de vértice. O uso desse sinalizador permite que o driver escolha o melhor local de memória para operações de gravação e renderização eficientes. As tentativas de leitura de um buffer de vértice criado com esse recurso falharão. Os buffers criados com D3DPOOL_DEFAULT que não especificam D3DUSAGE_WRITEONLY podem sofrer uma penalidade severa de desempenho. D3DUSAGE_WRITEONLY afeta apenas o desempenho dos buffers de D3DPOOL_DEFAULT .
D3DUSAGE_RESTRICTED_CONTENT
A definição desse sinalizador indica que o recurso pode conter conteúdo protegido.
Diferenças entre o Direct3D 9 e o Direct3D 9Ex: Este sinalizador está disponível apenas no Direct3D 9Ex.
D3DUSAGE_RESTRICT_SHARED_RESOURCE
A definição desse sinalizador indica que o acesso ao recurso compartilhado deve ser restrito.
Diferenças entre o Direct3D 9 e o Direct3D 9Ex: Este sinalizador está disponível apenas no Direct3D 9Ex.
D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER
Definir esse sinalizador indica que o driver deve restringir o acesso ao recurso compartilhado. O chamador deve criar um canal autenticado com o driver. O driver deve então permitir o acesso a processos que tentam abrir esse recurso compartilhado.
Diferenças entre o Direct3D 9 e o Direct3D 9Ex: Este sinalizador está disponível apenas no Direct3D 9Ex.

Observações

Uso e combinações de recursos

Os usos são especificados quando um recurso é criado ou especificados com CheckDeviceType para testar a capacidade de um recurso existente. A tabela a seguir identifica quais usos podem ser aplicados a quais tipos de recursos.

Utilização Criação de buffer de vértice Criação de buffer de índice Criação de textura Criação de textura de cubo Criação de textura de volume Criação de superfície Verificar o formato do dispositivo
D3DUSAGE_AUTOGENMIPMAP Sim, sim Sim
D3DUSAGE_DEPTHSTENCIL Sim, sim Sim, sim
D3DUSAGE_DMAP Sim Sim
D3DUSAGE_DONOTCLIP sim sim
D3DUSAGE_DYNAMIC sim sim sim Sim
D3DUSAGE_NONSECURE sim sim sim sim
D3DUSAGE_NPATCHES sim sim
D3DUSAGE_POINTS sim sim
D3DUSAGE_RTPATCHES sim sim
D3DUSAGE_RENDERTARGET Sim, sim Sim, sim
D3DUSAGE_SOFTWAREPROCESSING sim sim sim sim Sim
D3DUSAGE_TEXTAPI sim Sim
D3DUSAGE_WRITEONLY sim sim

 

Use CheckDeviceFormat para verificar o suporte de hardware para esses usos.

Cada um dos métodos de criação de recursos está listado aqui.

As funções de texturização D3DXCreatexxx também usam alguns desses valores constantes para a criação de recursos.

Para obter mais informações sobre tipos de pool e suas restrições com determinados usos, consulte D3DPOOL.

Requerimentos

Requisito Valor
Cabeçalho
D3d9types.h

Ver também

Direct3D Constantes

D3DUSAGE_QUERY

D3DDECLUSAGE

D3DPOOL