D3DUSAGE
Параметры использования, определяющие способ использования ресурсов.
В следующей таблице перечислены доступные варианты использования.
Константа | Описание |
---|---|
|
Ресурс автоматически создает MIP-карты. См. статью Автоматическое создание MIP-карт (Direct3D 9). Автоматическое создание MIP-карт не поддерживается для объемных текстур и поверхностей трафаретов глубины. Это недопустимо для ресурса в системной памяти (D3DPOOL_SYSTEMMEM). |
|
Ресурс будет буфером трафарета глубины.
D3DUSAGE_DEPTHSTENCIL можно использовать только с D3DPOOL_DEFAULT. |
|
Ресурс будет картой смещения. |
|
Задайте значение , указывающее, что содержимое буфера вершин никогда не потребует обрезки. При отрисовке с буферами, для которых установлен этот флаг, состояние D3DRS_CLIPPING отрисовки должно быть равно false. |
|
Задайте значение , указывающее, что буфер вершин требует динамического использования памяти. Это полезно для драйверов, так как позволяет им решать, куда поместить буфер. Как правило, статические буферы вершин помещаются в видеопамяти, а динамические буферы вершин — в память 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. Дополнительные сведения о динамических текстурах см. в разделе Использование динамических текстур. |
|
Разрешить открытие общей поверхности, созданной защищенным приложением, незащищенным приложением с общим дескриптором. Различия между Direct3D 9 и Direct3D 9Ex: Этот флаг доступен только в Direct3D 9Ex. |
|
Задайте значение , указывающее, что буфер вершин будет использоваться для рисования N-исправлений. |
|
Задайте значение , указывающее, что буфер вершин или индексов будет использоваться для спрайтов точек рисования. Буфер будет загружен в системную память, если для эмуляции спрайтов точек требуется программная обработка вершин. |
|
Ресурс будет целевым объектом отрисовки.
D3DUSAGE_RENDERTARGET можно использовать только с D3DPOOL_DEFAULT. |
|
Задайте значение , указывающее, что буфер вершин будет использоваться для рисования примитивов высокого порядка. |
|
Если используется этот флаг, обработка вершин выполняется программными средствами. Если этот флаг не используется, обработка вершин выполняется на оборудовании. Флаг D3DUSAGE_SOFTWAREPROCESSING можно установить, если для этого устройства включена обработка вершин в смешанном режиме или программномрежиме (D3DCREATE_MIXED_VERTEXPROCESSING / D3DCREATE_SOFTWARE_VERTEXPROCESSING). D3DUSAGE_SOFTWAREPROCESSING необходимо задать, чтобы буферы использовались при программной обработке вершин в смешанном режиме, но при использовании аппаратной обработки индексов в смешанном режиме (D3DCREATE_HARDWARE_VERTEXPROCESSING). Однако настройка D3DUSAGE_SOFTWAREPROCESSING является единственным вариантом при использовании одного буфера с аппаратной и программной обработкой вершин. D3DUSAGE_SOFTWAREPROCESSING разрешено для смешанных и программных устройств. D3DUSAGE_SOFTWAREPROCESSING используется с CheckDeviceFormat , чтобы узнать, можно ли использовать определенный формат текстуры в качестве текстуры вершин во время программной обработки вершин. Если это возможно, текстура должна быть создана в D3DPOOL_SCRATCH. |
|
Этот флаг использования должен быть указан для буферов вершин и исходных поверхностей, используемых в вызовах ComposeRects. T-модули, созданные с этим флагом использования, не могут использоваться для фильтрации текстур. Буферы вершин, созданные с этим флагом использования, нельзя использовать в качестве источников входных потоков. Различия между Direct3D 9 и Direct3D 9Ex: Этот флаг доступен только в Direct3D 9Ex. |
|
Сообщает системе, что приложение записывает только в буфер вершин. Использование этого флага позволяет драйверу выбрать оптимальное расположение памяти для эффективных операций записи и отрисовки. Попытки чтения из буфера вершин, созданного с помощью этой возможности, завершаются ошибкой. Буферы, созданные с помощью D3DPOOL_DEFAULT , которые не указывают D3DUSAGE_WRITEONLY , могут снизить производительность.
D3DUSAGE_WRITEONLY влияет только на производительность буферов D3DPOOL_DEFAULT . |
|
Установка этого флага указывает, что ресурс может содержать защищенное содержимое. Различия между Direct3D 9 и Direct3D 9Ex: Этот флаг доступен только в Direct3D 9Ex. |
|
Установка этого флага означает, что доступ к общему ресурсу должен быть ограничен. Различия между Direct3D 9 и Direct3D 9Ex: Этот флаг доступен только в Direct3D 9Ex. |
|
Установка этого флага указывает, что драйвер должен ограничить доступ к общему ресурсу. Вызывающий объект должен создать прошедший проверку подлинности канал с драйвером. Затем драйвер должен разрешить доступ к процессам, которые пытаются открыть этот общий ресурс. Различия между 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, чтобы проверка поддержку оборудования для этих вариантов использования.
Здесь перечислены все методы создания ресурсов.
- CreateCubeTexture
- CreateDepthStencilSurface
- CreateIndexBuffer
- CreateOffscreenPlainSurface
- CreateRenderTarget
- CreateTexture
- CreateVertexBuffer
- CreateVolumeTexture
Функции текстурирования D3DXCreatexxx также используют некоторые из этих значений констант для создания ресурсов.
Дополнительные сведения о типах пулов и их ограничениях при определенном использовании см. в разделе D3DPOOL.
Требования
Требование | Значение |
---|---|
Заголовок |
|
См. также раздел