D3DXCreateTextureFromFileEx 함수

파일에서 텍스처를 만듭니다. 이는 D3DXCreateTextureFromFile보다 고급 함수입니다.

구문

HRESULT D3DXCreateTextureFromFileEx(
  _In_    LPDIRECT3DDEVICE9  pDevice,
  _In_    LPCTSTR            pSrcFile,
  _In_    UINT               Width,
  _In_    UINT               Height,
  _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_   LPDIRECT3DTEXTURE9 *ppTexture
);

매개 변수

pDevice [in]

형식: LPDIRECT3DDEVICE9

텍스처와 연결할 디바이스를 나타내는 IDirect3DDevice9 인터페이스에 대한 포인터입니다.

pSrcFile [in]

형식: LPCTSTR

파일 이름을 지정하는 문자열에 대한 포인터입니다. 컴파일러 설정에 유니코드가 필요한 경우 데이터 형식 LPCTSTR이 LPCWSTR로 확인됩니다. 그렇지 않으면 문자열 데이터 형식이 LPCSTR로 확인됩니다. 설명 부분을 참조하세요.

너비 [in]

형식: UINT

너비(픽셀)입니다. 이 값이 0 또는 D3DX_DEFAULT 경우 차원은 파일에서 가져와서 2의 전원으로 반올림됩니다. 디바이스가 2개의 텍스처의 비전력을 지원하고 D3DX_DEFAULT_NONPOW2 지정되면 크기가 반올림되지 않습니다.

높이 [in]

형식: UINT

높이(픽셀)입니다. 이 값이 0 또는 D3DX_DEFAULT 경우 차원은 파일에서 가져와서 2의 전원으로 반올림됩니다. 디바이스가 2개의 텍스처의 비전력을 지원하고 D3DX_DEFAULT_NONPOW2 설정되면 크기가 반올림되지 않습니다.

MipLevels [in]

형식: UINT

요청된 밉 수준 수입니다. 이 값이 0이거나 D3DX_DEFAULT 경우 전체 mipmap 체인이 만들어집니다. D3DX_FROM_FILE 경우 크기는 파일에서와 동일하게 수행되며, 디바이스 기능을 위반하는 경우 호출이 실패합니다.

사용량 [in]

형식: DWORD

0, D3DUSAGE_RENDERTARGET 또는 D3DUSAGE_DYNAMIC. 이 플래그를 D3DUSAGE_RENDERTARGET 설정하면 표면이 렌더링 대상으로 사용됨을 나타냅니다. 그런 다음 리소스를 SetRenderTarget 메서드의 pNewRenderTarget 매개 변수에 전달할 수 있습니다. D3DUSAGE_RENDERTARGET 또는 D3DUSAGE_DYNAMIC 지정한 경우 을 D3DPOOL_DEFAULT 설정해야 하며, 애플리케이션은 CheckDeviceFormat을 호출하여 디바이스가 이 작업을 지원하는지 검사 합니다. D3DUSAGE_DYNAMIC 표면을 동적으로 처리해야 했음을 나타냅니다. 동적 텍스처 사용을 참조하세요.

형식 [in]

형식: D3DFORMAT

텍스처에 대해 요청된 픽셀 형식을 설명하는 D3DFORMAT 열거형 형식의 멤버입니다. 반환된 텍스처의 형식이 Format으로 지정된 형식과 다를 수 있습니다. 애플리케이션은 반환된 텍스처의 형식을 검사 합니다. 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을 사용하여 .dds 텍스처가 메모리에 로드될 때 건너뛸 밉 수준 수를 지정합니다(Mipmap 체인 맨 위에서). 이를 통해 최대 32개의 수준을 건너뛸 수 있습니다.

ColorKey [in]

형식: D3DCOLOR

투명 검정으로 바꿀 D3DCOLOR 값이거나 색 키를 사용하지 않도록 설정하려면 0입니다. 원본 이미지 형식과 관계없이 항상 32비트 ARGB 색입니다. 알파는 중요하며 일반적으로 불투명 색 키의 경우 FF로 설정해야 합니다. 따라서 불투명 검정의 경우 값은 0xFF000000 같습니다.

pSrcInfo [in, out]

형식: D3DXIMAGE_INFO*

원본 이미지 파일 또는 NULL의 데이터에 대한 설명으로 채울 D3DXIMAGE_INFO 구조체에 대한 포인터입니다.

pPalette [out]

형식: PALETTEENTRY*

채울 256색 팔레트 또는 NULL을 나타내는 PALETTEENTRY 구조체에 대한 포인터입니다.

ppTexture [out]

형식: LPDIRECT3DTEXTURE9*

생성된 텍스처 개체를 나타내는 IDirect3DTexture9 인터페이스에 대한 포인터의 주소입니다.

반환 값

형식: HRESULT

함수가 성공하면 반환 값이 D3D_OK. 함수가 실패하면 반환 값은 D3DERR_INVALIDCALL, D3DERR_NOTAVAILABLE, D3DERR_OUTOFVIDEOMEMORY, D3DXERR_INVALIDDATA, E_OUTOFMEMORY 중 하나일 수 있습니다.

설명

컴파일러 설정은 함수 버전도 결정합니다. 유니코드가 정의되면 함수 호출이 D3DXCreateTextureFromFileExW로 확인됩니다. 그렇지 않으면 ANSI 문자열이 사용되므로 함수 호출이 D3DXCreateTextureFromFileExA로 확인됩니다.

D3DXCheckTextureRequirements를 사용하여 현재 상태가 지정된 경우 디바이스가 텍스처를 지원할 수 있는지 확인합니다.

이 함수는 .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm 및 .tga 파일 형식을 지원합니다. D3DXIMAGE_FILEFORMAT 참조하세요.

Mipmapped 텍스처는 로드된 텍스처로 채워진 각 수준을 자동으로 갖습니다. Mipmapped 텍스처에 이미지를 로드할 때 일부 디바이스는 1x1 이미지로 이동하지 못하며 이 함수는 실패합니다. 이 경우 이미지를 수동으로 로드해야 합니다.

D3DXCreateTextureFromFileEx를 사용할 때 최상의 성능을 위해 다음을 수행합니다.

  1. 로드 시 이미지 크기 조정 및 형식 변환을 수행하면 속도가 느려질 수 있습니다. 이미지를 사용할 형식 및 해상도로 저장합니다. 대상 하드웨어에 2차원의 전원이 필요한 경우 2차원의 전원을 사용하여 이미지를 만들고 저장합니다.
  2. 로드 시 Mipmap 이미지를 만들려면 D3DX_FILTER_BOX 사용하여 필터링합니다. 상자 필터는 D3DX_FILTER_TRIANGLE 같은 다른 필터 형식보다 훨씬 빠릅니다.
  3. DDS 파일을 사용하는 것이 좋습니다. DDS 파일을 사용하여 Direct3D 9 텍스처 형식을 나타낼 수 있으므로 D3DX를 읽기가 매우 쉽습니다. 또한 Mipmap을 저장할 수 있으므로 모든 Mipmap 생성 알고리즘을 사용하여 이미지를 작성할 수 있습니다.

.dds 파일을 로드하는 동안 mipmap 수준을 건너뛰는 경우 D3DX_SKIP_DDS_MIP_LEVELS 매크로를 사용하여 MipFilter 값을 생성합니다. 이 매크로는 건너뛸 수준 수와 필터 형식을 사용하고 필터 값을 반환합니다. 그러면 MipFilter 매개 변수에 전달됩니다.

요구 사항

요구 사항
헤더
D3dx9tex.h
라이브러리
D3dx9.lib

추가 정보

D3DXCreateTextureFromFile

D3DX 9의 텍스처 함수