Функция D3DXCreateCubeTextureFromFileInMemoryEx

Создает текстуру куба из файла в памяти. Это более расширенная функция, чем D3DXCreateCubeTextureFromFileInMemory.

Синтаксис

HRESULT D3DXCreateCubeTextureFromFileInMemoryEx(
  _In_    LPDIRECT3DDEVICE9      pDevice,
  _In_    LPCVOID                pSrcData,
  _In_    UINT                   SrcDataSize,
  _In_    UINT                   Size,
  _In_    UINT                   MipLevels,
  _In_    DWORD                  Usage,
  _In_    D3DFORMAT              Format,
  _In_    D3DPOOL                Pool,
  _In_    DWORD                  Filter,
  _In_    DWORD                  MipFilter,
  _In_    D3DCOLOR               ColorKey,
  _Inout_ D3DXIMAGE_INFO         *pSrcInfo,
  _Out_   PALETTEENTRY           *pPalette,
  _Out_   LPDIRECT3DCUBETEXTURE9 *ppCubeTexture
);

Параметры

pDevice [in]

Тип: LPDIRECT3DDEVICE9

Указатель на интерфейс IDirect3DDevice9 , представляющий устройство, связанное с текстурой куба.

pSrcData [in]

Тип: LPCVOID

Указатель на файл в памяти, из которого создается текстура куба. См. заметки.

SrcDataSize [in]

Тип: UINT

Размер файла в памяти в байтах.

Размер [in]

Тип: UINT

Ширина (или высота) в пикселях. Если это значение равно нулю или D3DX_DEFAULT, измерения взяты из файла.

MipLevels [in]

Тип: UINT

Количество запрошенных уровней MIP. Если это значение равно нулю или D3DX_DEFAULT, создается полная цепочка MIP-карты.

Использование [in]

Тип: DWORD

0, D3DUSAGE_RENDERTARGET или D3DUSAGE_DYNAMIC. Установка этого флага на D3DUSAGE_RENDERTARGET указывает, что поверхность должна использоваться в качестве целевого объекта отрисовки. Затем ресурс можно передать в параметр pNewRenderTarget метода SetRenderTarget . Если указан D3DUSAGE_RENDERTARGET, приложение должно проверить, поддерживает ли устройство эту операцию, вызвав CheckDeviceFormat. Дополнительные сведения об использовании динамических текстур см. в разделе "Использование динамических текстур".

Формат [in]

Тип: D3DFORMAT

Элемент перечисленного типа D3DFORMAT , описывающий запрошенный формат пикселя для текстуры куба. Возвращаемая текстура может иметь другой формат, отличный от формата, заданного форматом. Приложения должны проверять формат возвращаемой текстуры. Если D3DFMT_UNKNOWN, формат взят из файла. Если D3DFMT_FROM_FILE, формат принимается точно так же, как в файле, и вызов завершится ошибкой, если это нарушает возможности устройства.

Пул [in]

Тип: D3DPOOL

Элемент перечисленного типа D3DPOOL , описывающий класс памяти, в который следует поместить текстуру куба.

Фильтр [in]

Тип: DWORD

Сочетание одного или нескольких D3DX_FILTER управления фильтрацией изображения. Указание D3DX_DEFAULT для этого параметра эквивалентно указанию D3DX_FILTER_TRIANGLE | D3DX_FILTER_DITHER.

MipFilter [in]

Тип: DWORD

Сочетание одного или нескольких D3DX_FILTER управления фильтрацией изображения. Указание D3DX_DEFAULT для этого параметра эквивалентно указанию D3DX_FILTER_BOX. Кроме того, используйте биты 27–31, чтобы указать количество уровней MIP для пропуска (из верхней части цепочки MIP-карты) при загрузке текстуры DDS в память; это позволяет пропустить до 32 уровней.

ColorKey [in]

Тип: D3DCOLOR

Значение D3DCOLOR для замены прозрачным черным цветом или 0 для отключения цветового ключа. Это всегда 32-разрядный arGB-цвет, не зависящий от формата исходного изображения. Альфа является значительным и обычно должен иметь значение FF для непрозрачных цветовых ключей. Таким образом, для непрозрачного черного цвета значение будет равно 0xFF000000.

pSrcInfo [in, out]

Тип: D3DXIMAGE_INFO*

Указатель на структуру D3DXIMAGE_INFO , которая должна быть заполнена описанием данных в файле исходного изображения или NULL.

pPalette [out]

Тип: PALETTEENTRY*

Указатель на структуру PALETTEENTRY , представляющую 256-цветовую палитру для заполнения или NULL. См. заметки.

ppCubeTexture [out]

Тип: LPDIRECT3DCUBETEXTURE9*

Адрес указателя на интерфейс IDirect3DCubeTexture9 , представляющий созданный объект текстуры куба.

Возвращаемое значение

Тип: HRESULT

Если функция завершается успешно, возвращаемое значение D3D_OK. Если функция завершается ошибкой, возвращаемое значение может быть одним из следующих значений: D3DERR_INVALIDCALL, D3DERR_NOTAVAILABLE, D3DERR_OUTOFVIDEOMEMORY, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Remarks

Эта функция поддерживает следующие форматы файлов: .bmp, DDS, DIB, HDR, .jpg, PFM, .png, PPM и TGA. См. D3DXIMAGE_FILEFORMAT.

Текстуры куба отличаются от других поверхностей в том, что они являются коллекциями поверхностей. Чтобы вызвать SetRenderTarget с текстурой куба, необходимо выбрать отдельное лицо с помощью GetCubeMapSurface и передать полученную поверхность в SetRenderTarget .

Этот метод предназначен для загрузки файлов изображений, хранящихся как RT_RCDATA, который является ресурсом, определяемым приложением (необработанными данными). В противном случае этот метод завершится ошибкой.

Дополнительные сведения о PALETTEENTRY см. в пакете SDK для платформы. Обратите внимание, что по состоянию на DirectX 8.0 элемент peFlags структуры PALETTEENTRY не работает так, как описано в пакете SDK для платформы. Элемент peFlags теперь является альфа-каналом для 8-разрядных палеттизированных форматов.

D3DXCreateCubeTextureFromFileInMemoryEx использует формат файла DirectDraw surface (DDS). Редактор текстур DirectX (Dxtex.exe) позволяет создать карту куба из других форматов файлов и сохранить ее в формате DDS-файла. Вы можете получить Dxtex.exe и узнать об этом из пакета SDK для DirectX. Сведения о пакете SDK Для DirectX см. в разделе " Где находится пакет SDK Для DirectX?".

При пропуске уровней MIP-карты при загрузке DDS-файла используйте макрос D3DX_SKIP_DDS_MIP_LEVELS для создания значения MipFilter. Этот макрос принимает количество уровней для пропуска и типа фильтра и возвращает значение фильтра, которое затем будет передано в параметр MipFilter.

Требования

Требование Значение
Заголовок
D3dx9tex.h
Библиотека
D3dx9.lib

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

Функции текстуры в D3DX 9