Поделиться через


D3DUSAGE

Параметры использования, определяющие способ использования ресурсов.

В следующей таблице перечислены доступные варианты использования.

Константа Описание
D3DUSAGE_AUTOGENMIPMAP
Ресурс автоматически создает MIP-карты. См. статью Автоматическое создание MIP-карт (Direct3D 9). Автоматическое создание MIP-карт не поддерживается для объемных текстур и поверхностей трафаретов глубины. Это недопустимо для ресурса в системной памяти (D3DPOOL_SYSTEMMEM).
D3DUSAGE_DEPTHSTENCIL
Ресурс будет буфером трафарета глубины. D3DUSAGE_DEPTHSTENCIL можно использовать только с D3DPOOL_DEFAULT.
D3DUSAGE_DMAP
Ресурс будет картой смещения.
D3DUSAGE_DONOTCLIP
Задайте значение , указывающее, что содержимое буфера вершин никогда не потребует обрезки. При отрисовке с буферами, для которых установлен этот флаг, состояние D3DRS_CLIPPING отрисовки должно быть равно false.
D3DUSAGE_DYNAMIC
Задайте значение , указывающее, что буфер вершин требует динамического использования памяти. Это полезно для драйверов, так как позволяет им решать, куда поместить буфер. Как правило, статические буферы вершин помещаются в видеопамяти, а динамические буферы вершин — в память AGP. Обратите внимание, что отдельного статического использования не существует. Если не указать D3DUSAGE_DYNAMIC, буфер вершин становится статическим. D3DUSAGE_DYNAMIC строго применяются с помощью флагов D3DLOCK_DISCARD и D3DLOCK_NOOVERWRITE блокировки. В результате D3DLOCK_DISCARD и D3DLOCK_NOOVERWRITE допустимы только в буферах вершин, созданных с помощью D3DUSAGE_DYNAMIC. Они не являются допустимыми флагами в статических буферах вершин. Дополнительные сведения см. в разделе Управление ресурсами (Direct3D 9).
Дополнительные сведения об использовании динамических буферов вершин см. в статье Оптимизация производительности (Direct3D 9).
D3DUSAGE_DYNAMIC и D3DPOOL_MANAGED несовместимы и не должны использоваться вместе. См . раздел D3DPOOL.
Текстуры могут указывать D3DUSAGE_DYNAMIC. Однако управляемые текстуры не могут использовать D3DUSAGE_DYNAMIC. Дополнительные сведения о динамических текстурах см. в разделе Использование динамических текстур.
D3DUSAGE_NONSECURE
Разрешить открытие общей поверхности, созданной защищенным приложением, незащищенным приложением с общим дескриптором.
Различия между Direct3D 9 и Direct3D 9Ex: Этот флаг доступен только в Direct3D 9Ex.
D3DUSAGE_NPATCHES
Задайте значение , указывающее, что буфер вершин будет использоваться для рисования N-исправлений.
D3DUSAGE_POINTS
Задайте значение , указывающее, что буфер вершин или индексов будет использоваться для спрайтов точек рисования. Буфер будет загружен в системную память, если для эмуляции спрайтов точек требуется программная обработка вершин.
D3DUSAGE_RENDERTARGET
Ресурс будет целевым объектом отрисовки. D3DUSAGE_RENDERTARGET можно использовать только с D3DPOOL_DEFAULT.
D3DUSAGE_RTPATCHES
Задайте значение , указывающее, что буфер вершин будет использоваться для рисования примитивов высокого порядка.
D3DUSAGE_SOFTWAREPROCESSING
Если используется этот флаг, обработка вершин выполняется программными средствами. Если этот флаг не используется, обработка вершин выполняется на оборудовании.
Флаг D3DUSAGE_SOFTWAREPROCESSING можно установить, если для этого устройства включена обработка вершин в смешанном режиме или программномрежиме (D3DCREATE_MIXED_VERTEXPROCESSING / D3DCREATE_SOFTWARE_VERTEXPROCESSING). D3DUSAGE_SOFTWAREPROCESSING необходимо задать, чтобы буферы использовались при программной обработке вершин в смешанном режиме, но при использовании аппаратной обработки индексов в смешанном режиме (D3DCREATE_HARDWARE_VERTEXPROCESSING). Однако настройка D3DUSAGE_SOFTWAREPROCESSING является единственным вариантом при использовании одного буфера с аппаратной и программной обработкой вершин. D3DUSAGE_SOFTWAREPROCESSING разрешено для смешанных и программных устройств.
D3DUSAGE_SOFTWAREPROCESSING используется с CheckDeviceFormat , чтобы узнать, можно ли использовать определенный формат текстуры в качестве текстуры вершин во время программной обработки вершин. Если это возможно, текстура должна быть создана в D3DPOOL_SCRATCH.
D3DUSAGE_TEXTAPI
Этот флаг использования должен быть указан для буферов вершин и исходных поверхностей, используемых в вызовах ComposeRects. T-модули, созданные с этим флагом использования, не могут использоваться для фильтрации текстур. Буферы вершин, созданные с этим флагом использования, нельзя использовать в качестве источников входных потоков.
Различия между Direct3D 9 и Direct3D 9Ex: Этот флаг доступен только в Direct3D 9Ex.
D3DUSAGE_WRITEONLY
Сообщает системе, что приложение записывает только в буфер вершин. Использование этого флага позволяет драйверу выбрать оптимальное расположение памяти для эффективных операций записи и отрисовки. Попытки чтения из буфера вершин, созданного с помощью этой возможности, завершаются ошибкой. Буферы, созданные с помощью D3DPOOL_DEFAULT , которые не указывают D3DUSAGE_WRITEONLY , могут снизить производительность. D3DUSAGE_WRITEONLY влияет только на производительность буферов D3DPOOL_DEFAULT .
D3DUSAGE_RESTRICTED_CONTENT
Установка этого флага указывает, что ресурс может содержать защищенное содержимое.
Различия между Direct3D 9 и Direct3D 9Ex: Этот флаг доступен только в Direct3D 9Ex.
D3DUSAGE_RESTRICT_SHARED_RESOURCE
Установка этого флага означает, что доступ к общему ресурсу должен быть ограничен.
Различия между Direct3D 9 и Direct3D 9Ex: Этот флаг доступен только в Direct3D 9Ex.
D3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER
Установка этого флага указывает, что драйвер должен ограничить доступ к общему ресурсу. Вызывающий объект должен создать прошедший проверку подлинности канал с драйвером. Затем драйвер должен разрешить доступ к процессам, которые пытаются открыть этот общий ресурс.
Различия между Direct3D 9 и Direct3D 9Ex: Этот флаг доступен только в Direct3D 9Ex.

Комментарии

Комбинации использования и ресурсов

Использование указывается при создании ресурса или указывается с помощью CheckDeviceType для проверки возможностей существующего ресурса. В следующей таблице показано, какие виды использования можно применять к тем или иным типам ресурсов.

Использование Создание буфера вершин Создание буфера индекса Создание текстуры Создание текстуры куба Создание текстуры тома Создание Surface Проверка формата устройства
D3DUSAGE_AUTOGENMIPMAP x x x
D3DUSAGE_DEPTHSTENCIL x x x x
D3DUSAGE_DMAP x x
D3DUSAGE_DONOTCLIP x x
D3DUSAGE_DYNAMIC x x x x x x
D3DUSAGE_NONSECURE x x x x x x x
D3DUSAGE_NPATCHES x x
D3DUSAGE_POINTS x x
D3DUSAGE_RTPATCHES x x
D3DUSAGE_RENDERTARGET x x x x
D3DUSAGE_SOFTWAREPROCESSING x x x x x x
D3DUSAGE_TEXTAPI x x
D3DUSAGE_WRITEONLY x x

 

Используйте CheckDeviceFormat, чтобы проверка поддержку оборудования для этих вариантов использования.

Здесь перечислены все методы создания ресурсов.

Функции текстурирования D3DXCreatexxx также используют некоторые из этих значений констант для создания ресурсов.

Дополнительные сведения о типах пулов и их ограничениях при определенном использовании см. в разделе D3DPOOL.

Требования

Требование Значение
Заголовок
D3d9types.h

См. также раздел

Константы Direct3D

D3DUSAGE_QUERY

D3DDECLUSAGE

D3DPOOL