Метод IDirect3DDevice9::CreateTexture (d3d9.h)
Создает ресурс текстуры.
Синтаксис
HRESULT CreateTexture(
[in] UINT Width,
[in] UINT Height,
[in] UINT Levels,
[in] DWORD Usage,
[in] D3DFORMAT Format,
[in] D3DPOOL Pool,
[out, retval] IDirect3DTexture9 **ppTexture,
[in] HANDLE *pSharedHandle
);
Параметры
[in] Width
Тип: UINT
Ширина верхнего уровня текстуры в пикселях. Размеры пикселей последующих уровней — это усеченное значение половины пиксельного измерения предыдущего уровня (независимо). Каждое измерение зажимает размером 1 пиксель. Таким образом, если деление на 2 приводит к 0, вместо него будет принято 1.
[in] Height
Тип: UINT
Высота верхнего уровня текстуры в пикселях. Размеры пикселей последующих уровней — это усеченное значение половины пиксельного измерения предыдущего уровня (независимо). Каждое измерение зажимает размером 1 пиксель. Таким образом, если деление на 2 приводит к 0, вместо него будет принято 1.
[in] Levels
Тип: UINT
Количество уровней в текстуре. Если это значение равно нулю, Direct3D создаст все вложенные значения текстуры вплоть до 1 на 1 пикселя для оборудования, поддерживающего текстуры mipmapped. Вызовите метод IDirect3DBaseTexture9::GetLevelCount , чтобы просмотреть количество созданных уровней.
[in] Usage
Тип: DWORD
Использование может иметь значение 0, что указывает на отсутствие значения использования. Однако при необходимости используйте сочетание одной или нескольких констант D3DUSAGE . Рекомендуется сопоставить параметр использования с флагами поведения в IDirect3D9::CreateDevice.
[in] Format
Тип: D3DFORMAT
Член перечисленного типа D3DFORMAT , описывающий формат всех уровней в текстуре.
[in] Pool
Тип: D3DPOOL
Член перечисленного типа D3DPOOL , описывающий класс памяти, в который должна быть помещена текстура.
[out, retval] ppTexture
Тип: IDirect3DTexture9**
Указатель на интерфейс IDirect3DTexture9 , представляющий созданный ресурс текстуры.
[in] pSharedHandle
Тип: HANDLE*
Зарезервировано. Задайте для этого параметра значение NULL. Этот параметр можно использовать в Direct3D 9 для Windows Vista для совместного использования ресурсов.
Возвращаемое значение
Тип: HRESULT
Если метод выполнен успешно, возвращаемое значение будет D3D_OK. Если метод завершается ошибкой, возвращается одно из следующих значений: D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY E_OUTOFMEMORY.
Комментарии
Приложение может обнаружить поддержку автоматического создания MIP-карт (Direct3D 9) в определенном формате, вызвав IDirect3D9::CheckDeviceFormat с D3DUSAGE_AUTOGENMIPMAP. Если IDirect3D9::CheckDeviceFormat возвращает D3DOK_NOAUTOGEN, IDirect3DDevice9::CreateTexture будет выполнено успешно, но он вернет одноуровневую текстуру.
В Windows Vista CreateTexture может создать текстуру из указателя системной памяти, что позволяет приложению более гибко использовать, выделять и удалять системную память. Например, приложение может передать системный указатель памяти GDI и получить интерфейс текстуры Direct3D вокруг него. Использование указателя системной памяти в CreateTexture имеет следующие ограничения.
- Шаг текстуры должен быть равен ширине, умноженной на количество байтов на пиксель.
- Поддерживаются только текстуры с одним уровнем MIP-карты. Аргумент Levels должен иметь значение 1.
- Аргумент Pool должен быть D3DPOOL_SYSTEMMEM.
- Аргумент pSharedHandle должен быть допустимым указателем на буфер, который может содержать системную точку памяти; *pSharedHandle должен быть допустимым указателем на системную память с размером в байтах ширины текстуры * высоты текстуры * байтов на пиксель формата текстуры.
Требования
Целевая платформа | Windows |
Header | d3d9.h (включая D3D9.h) |
Библиотека | D3D9.lib |
См. также раздел
D3DXCreateTextureFromFileInMemory
D3DXCreateTextureFromFileInMemoryEx