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]
-
텍스처와 연결할 디바이스를 나타내는 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를 사용할 때 최상의 성능을 위해 다음을 수행합니다.
- 로드 시 이미지 크기 조정 및 형식 변환을 수행하면 속도가 느려질 수 있습니다. 이미지를 사용할 형식 및 해상도로 저장합니다. 대상 하드웨어에 2차원의 전원이 필요한 경우 2차원의 전원을 사용하여 이미지를 만들고 저장합니다.
- 로드 시 Mipmap 이미지를 만들려면 D3DX_FILTER_BOX 사용하여 필터링합니다. 상자 필터는 D3DX_FILTER_TRIANGLE 같은 다른 필터 형식보다 훨씬 빠릅니다.
- DDS 파일을 사용하는 것이 좋습니다. DDS 파일을 사용하여 Direct3D 9 텍스처 형식을 나타낼 수 있으므로 D3DX를 읽기가 매우 쉽습니다. 또한 Mipmap을 저장할 수 있으므로 모든 Mipmap 생성 알고리즘을 사용하여 이미지를 작성할 수 있습니다.
.dds 파일을 로드하는 동안 mipmap 수준을 건너뛰는 경우 D3DX_SKIP_DDS_MIP_LEVELS 매크로를 사용하여 MipFilter 값을 생성합니다. 이 매크로는 건너뛸 수준 수와 필터 형식을 사용하고 필터 값을 반환합니다. 그러면 MipFilter 매개 변수에 전달됩니다.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|
라이브러리 |
|
추가 정보