DirectX 3D/DirectX92017. 11. 6. 11:58

D3DXSHCOMPRESSQUALITYTYPE enumeration

Spherical harmonic (SH) compression setting.

Syntax

typedef enum D3DXSHCOMPRESSQUALITYTYPE { 
  D3DXSHCQUAL_FASTLOWQUALITY   = 1,
  D3DXSHCQUAL_SLOWHIGHQUALITY  = 2,
  D3DXSHCQUAL_FORCE_DWORD      = 0x7fffffff
} D3DXSHCOMPRESSQUALITYTYPE, *LPD3DXSHCOMPRESSQUALITYTYPE;

Constants

D3DXSHCQUAL_FASTLOWQUALITY

The data compression is low quality, but is fast to compress.

D3DXSHCQUAL_SLOWHIGHQUALITY

The data compression is high quality, but is slow to compress.

D3DXSHCQUAL_FORCE_DWORD

Forces this enumeration to compile to 32 bits in size. Without this value, some compilers would allow this enumeration to compile to a size other than 32 bits. This value is not used.

Requirements

Header

D3dx9mesh.h

See also

D3DX Enumerations


구면조화 압축 방식 설정 하는 거


1, 2인자가 퀄리티와 압축 반비례하는거 뭐 할건지 선택

3. 컴파일 비트 관련인데 디폴트 써도 문제 없었다.

Posted by 멜데스
DirectX 3D/DirectX92016. 11. 30. 16:37

ID3DXAllocateHierarchy 인터페이스


이 인터페이스는, 애플리케이션에 의해 처리 되어 프레임 및 메쉬 컨테이너 개체의 할당해 또는 릴리즈를 실시한다. 여기에 포함되는 메서드는, 프레임 계층을 로드 및 파기하는 처리로 호출된다.

ID3DXAllocateHierarchy 멤버

CreateFrame프레임 개체의 할당을 요구한다.
CreateMeshContainer메쉬 컨테이너 개체의 할당을 요구한다.
DestroyFrame프레임 개체의 할당 해제를 요구한다.
DestroyMeshContainer메쉬 컨테이너 개체의 할당 해제를 요구한다.

인터페이스의 정보

상속받은곳IUnknown
헤더d3dx9anim.h
임포트 라이브러리d3dx9.lib
최저한의 operating systemWindows 98


Posted by 멜데스
DirectX 3D/DirectX92016. 10. 28. 17:49

IDirect3DDevice9::CreateVertexShader 메서드


정점 셰이더를 생성 한다.

구문

HRESULT CreateVertexShader(      

    const DWORD *pFunction,     IDirect3DVertexShader9** ppShader );

파라미터

pFunction
[in] 정점 셰이더 기능 토큰 배열의 포인터. 이 파라미터에서는, 각 정점에 적용하는 처리를 정의한다.
ppShader
[out, retval] 돌려받는 정점 셰이더의 인터페이스의 포인터. 「IDirect3DVertexShader9 」를 참조할것.

반환값

성공했을 경우는,D3D_OK 를 돌려준다.

실패했을 경우는, 다음의 몇개의 값을 돌려준다.

D3DERR_INVALIDCALL메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다.
D3DERR_OUTOFVIDEOMEMORYMicrosoft® Direct3D® 가 처리를 실시하는데 충분한 디스플레이 메모리가 없다.
E_OUTOFMEMORYDirect3D 가 호출을 완료하기 위한 충분한 메모리를 할당할 수가 없었다.


주의

장치를 생성 할 때IDirect3D9::CreateDevice 는 동작 플래그를 사용해, 하드웨어와 소프트웨어의 어디에서 정점을 처리할까 결정한다. 설정 방법법은 3 개 있다.

  • 하드웨어로 정점을 처리하려면 , D3DCREATE_HARDWARE_VERTEXPROCESSING 를 설정한다.
  • 소프트웨어로 정점을 처리하려면 , D3DCREATE_SOFTWARE_VERTEXPROCESSING 를 설정한다.
  • 하드웨어 또는 소프트웨어로 정점을 처리하려면 , D3DCREATE_MIXED_VERTEXPROCESSING 를 설정한다.

    믹스 모드의 장치에서는, 장치의 생성 후에, 소프트웨어와 하드웨어 처리의 변환이 필요한 경우가 있다. 이 경우는,IDirect3DDevice9::SetSoftwareVertexProcessing 를 사용한다.

참조

IDirect3D9::CreateDevice ,D3DXAssembleShader


'DirectX 3D > DirectX9' 카테고리의 다른 글

D3DXSHCOMPRESSQUALITYTYPE enumeration  (0) 2017.11.06
48. ID3DXAllocateHierarchy 인터페이스  (0) 2016.11.30
46. D3DXIMAGE_FILEFORMAT 열거형  (0) 2016.10.28
45. D3DXSaveTextureToFile 함수  (0) 2016.10.28
44. D3DLOCKED_RECT 구조체  (0) 2016.10.28
Posted by 멜데스
DirectX 3D/DirectX92016. 10. 28. 13:29

D3DXIMAGE_FILEFORMAT 열거형


지원 하는 이미지 파일 포맷을 기술한다.

구문

typedef enum _D3DXIMAGE_FILEFORMAT {
    D3DXIFF_BMP = 0,
    D3DXIFF_DDS = 4,
    D3DXIFF_DIB = 6,
    D3DXIFF_JPG = 1,
    D3DXIFF_PNG = 3,
    D3DXIFF_PPM = 5,
    D3DXIFF_TGA = 2,
    D3DXIFF_FORCE_DWORD = 0x7fffffff
} D3DXIMAGE_FILEFORMAT;

정수

D3DXIFF_BMP

Microsoft® Windows® 비트 맵 (BMP) 파일 포맷.

D3DXIFF_DDS

Microsoft DirectDraw® 표면 (DDS) 파일 포맷.

D3DXIFF_DIB

Microsoft 장치비의존 비트 맵 (BMP) 파일 포맷.

D3DXIFF_JPG

Joint Photographics Experts Group (JPEG) 압축파일 포맷.

D3DXIFF_PNG

Portable Network Graphics (PNG) 파일 포맷.

D3DXIFF_PPM

Portable Pixmap (PPM) 파일 포맷.

D3DXIFF_TGA

Truevision (Targa 또는 TGA) 이미지 파일 포맷.

D3DXIFF_FORCE_DWORD

이 열거형을 강제적으로 32 비트 사이즈에 컴파일 한다. 이 값은 사용되지 않았다.

주의

D3DXLoadxxx 로 시작되는 함수는, 리스트 한 포맷 모든 것을 지원 한다. D3DXSavexxx 로 시작되는 함수는,. bmp,. dds, 및 . dib 포맷을 지원 한다.

열거형의 정보

헤더d3dx9tex.h
최저한의 operating systemWindows 98


Posted by 멜데스
DirectX 3D/DirectX92016. 10. 28. 13:28

D3DXSaveTextureToFile 함수


텍스처를 파일에 보존한다.

구문

HRESULT D3DXSaveTextureToFile(      

    LPCTSTR pDestFile,     D3DXIMAGE_FILEFORMAT DestFormat,     LPDIRECT3DBASETEXTURE9 pSrcTexture,     const PALETTEENTRY *pSrcPalette );

파라미터

pDestFile
[in] 소스 이미지의 파일명을 지정하는 캐릭터 라인의 포인터. 컴파일러의 설정이 Unicode 를 요구하고 있는 경우, 데이터 타입 LPCTSTR 는 LPCWSTR 가 된다. 그 이외의 경우는, 이 캐릭터 라인의 데이터 타입은 LPCSTR 가 된다. 「주의」를 참조할것.
DestFormat
[in] 보존할 경우에 사용하는 파일 포맷을 지정하는 D3DXIMAGE_FILEFORMAT .
pSrcTexture
[in] 보존하는 텍스처를 포함한 IDirect3DBaseTexture9 인터페이스의 포인터.
pSrcPalette
[in] 256 색의 팔레트를 포함한 PALETTEENTRY 구조체의 포인터. 이 파라미터는 NULL 로 해도 괜찮다.

반환값

성공했을 경우는,D3D_OK 를 돌려준다.

실패했을 경우는, 다음의 값을 돌려준다.

D3DERR_INVALIDCALL메서드의 호출이 무효이다. 예를 들어, 메서드의 파라미터에 무효인 값이 설정되어 있는 경우 등이다.


주의

컴파일러의 설정에 의해 함수의 버전도 정해진다. Unicode 가 정의되고 있는 경우, 이 함수의 호출은D3DXSaveTextureToFileW 가 된다. 그 이외의 경우는 ANSI 캐릭터 라인을 사용하므로, 이 함수의 호출은D3DXSaveTextureToFileA 가 된다.

이 함수가 지원 하고 있는 파일 포맷은,. bmp 및 . dds 이다.

이 함수는, 압축 텍스처 포맷간의 변환을 처리한다.

볼륨이 비동적이어 (생성시에 사용 방법의 파라미터가 0 으로 설정되어 있었기 때문에), 비디오 메모리내에 배치되고 있는 (메모리 풀이 D3DPOOL_DEFAULT 으로 설정되어 있다) 경우,D3DXSaveTextureToFile 는 실패한다. 이것은, Direct3D extension (D3DX)가 비디오 메모리내의 비동적인 볼륨을 잠글 수 없기 때문이다.

함수의 정보

헤더d3dx9tex.h
임포트 라이브러리d3dx9.lib
최저한의 operating systemWindows 98

참조

D3DXSaveSurfaceToFile ,D3DXSaveVolumeToFile


Posted by 멜데스
DirectX 3D/DirectX92016. 10. 28. 13:27

D3DLOCKED_RECT 구조체


잠긴 직사각형 영역을 기술한다.

구문

typedef struct _D3DLOCKED_RECT {
    INT Pitch;
    void *pBits;
} D3DLOCKED_RECT;

멤버

Pitch
표면 피치 (바이트 단위).
pBits
락이 끝난 비트의 포인터. RECT 가 IDirect3DSurface9::LockRect 의 호출에 제공되고 있는 경우,pBits 는 표면의 선두로부터 적절히 오프셋(offset) 된다.

주의

DXTn 포맷의 피치는, Microsoft® DirectX® 7.0 으로 돌려받는 것과는 다르다. 현재는, 블록 1 행의 바이트수를 가리킨다. 예를 들어, 폭이 16 인 경우, 피치는 4 블록이 된다 (DXT1 의 경우는 4*8, DXT2-5 의 경우는 4*16).

구조체의 정보

헤더d3d9types.h
최저한의 operating systemWindows 98

참조

IDirect3DCubeTexture9::LockRect ,IDirect3DSurface9::LockRect ,IDirect3DTexture9::LockRect


Posted by 멜데스
DirectX 3D/DirectX92016. 10. 27. 13:18

IDirect3DDevice9::SetTextureStageState 메서드


현재 할당할 수 있는 텍스처에 스테이트값을 설정한다.

구문

HRESULT SetTextureStageState(      

    DWORD Stage,     D3DTEXTURESTAGESTATETYPE Type,     DWORD Value );

파라미터

Stage
[in] 스테이트값을 설정하는 텍스처의 스테이지 식별자. 스테이지 식별자는 0 으로부터 시작된다. 장치는 최대 8 세트까지 텍스처를 가질 수가 있으므로,Stage 로 지정할 수 있는 최대치는 7 이다.
Type
[in] 설정하는 텍스처 스테이트. 이 파라미터에는,D3DTEXTURESTAGESTATETYPE 열거형의 임의의 멤버를 지정할 수 있다.
Value
[in] 설정하는 스테이트값. 이 값의 의미는 Type 파라미터에 의해 정해진다.

반환값

성공했을 경우는,D3D_OK 를 돌려준다.

실패했을 경우는,D3DERR_INVALIDCALL 를 돌려준다.



참조

IDirect3DDevice9::GetTextureStageState ,IDirect3DDevice9::GetTexture ,IDirect3DDevice9::SetTexture


'DirectX 3D > DirectX9' 카테고리의 다른 글

45. D3DXSaveTextureToFile 함수  (0) 2016.10.28
44. D3DLOCKED_RECT 구조체  (0) 2016.10.28
42. ID3DXBuffer 인터페이스  (0) 2016.10.26
41. ID3DXEffect 인터페이스  (0) 2016.10.26
40. D3DXCreateEffectFromFile 함수  (0) 2016.10.26
Posted by 멜데스
DirectX 3D/DirectX92016. 10. 26. 13:31

ID3DXBuffer 인터페이스


ID3DXBuffer 인터페이스는 데이터 버퍼로서 사용되어 메쉬의 최적화 및 로드의 조작시에, 정점·인접성·머트리얼에 관한 정보를 저장 한다. 버퍼 개체는, 임의의 길이의 데이터를 돌려주기 위해서(때문에) 사용된다. 한층 더 버퍼 개체는, 정점 셰이더와 픽셀 셰이더를 조립하는 메서드에 포함되는 개체 코드와 에러 메시지를 돌려주기 위해서(때문에) 사용된다.

ID3DXBuffer 멤버

GetBufferPointer버퍼내의 데이터에 대한 포인터를 얻어온다.
GetBufferSize버퍼내의 데이터의 합계 사이즈를 얻어온다.

주의

ID3DXBuffer 인터페이스를 얻어오려면,D3DXCreateBuffer 함수를 호출한다.

모든 구성 요소 개체 모델 (COM) 인터페이스와 같이,ID3DXBuffer 인터페이스는 IUnknown 인터페이스의 메서드를 계승한다.

LPD3DXBUFFER 형은,ID3DXBuffer 인터페이스의 포인터로서 정의되고 있다.

typedef struct ID3DXBuffer *LPD3DXBUFFER;

인터페이스의 정보

상속받은곳IUnknown
헤더d3dx9mesh.h
임포트 라이브러리d3dx9.lib
최저한의 operating systemWindows 98


Posted by 멜데스
DirectX 3D/DirectX92016. 10. 26. 13:30

ID3DXEffect 인터페이스


이펙트의 설정과 문의해 및 테크닉의 선택에 사용한다. 이펙트 개체에는, 같은 이펙트를 렌더링 하는 복수의 테크닉을 저장 할 수 있다.

ID3DXEffect 멤버

Begin테크닉의 적용을 시작 한다.
CloneEffect이펙트의 복사를 생성 한다.
End테크닉의 적용을 종료한다.
FindNextValidTechnique다음의 유효한 테크닉을 검색한다. 이 검색은, 지정한 테크닉의 다음의 테크닉으로부터 시작 된다.
GetAnnotation어노테이션의 핸들을 얻어온다.
GetAnnotationByName이름으로 참조해, 어노테이션의 핸들을 얻어온다.
GetBool불리언 값을 얻어온다.
GetBoolArray불리언 값의 배열을 얻어온다.
GetCurrentTechnique현재의 테크닉을 얻어온다.
GetDesc이펙트의 기술을 얻어온다.
GetDevice이펙트에 관련지을 수 있는 장치를 얻어온다.
GetFloat부동 소수점값을 얻어온다.
GetFloatArray부동 소수점값의 배열을 얻어온다.
GetFunction함수의 핸들을 얻어온다.
GetFunctionByName이름으로 참조해, 함수의 핸들을 얻어온다.
GetFunctionDesc함수의 기술을 얻어온다.
GetInt정수를 얻어온다.
GetIntArray정수의 배열을 얻어온다.
GetMatrix비전치행렬을 얻어온다.
GetMatrixArray비전치행렬의 배열을 얻어온다.
GetMatrixPointerArray비전치행렬의 포인터 배열을 설정한다.
GetMatrixTranspose전치행렬을 얻어온다.
GetMatrixTransposeArray전치행렬의 배열을 얻어온다.
GetMatrixTransposePointerArray전치행렬의 포인터 배열을 설정한다.
GetParameter최상정도 파라미터 또는 구조체 멤버 파라미터의 핸들을 얻어온다.
GetParameterByName이름으로 참조해, 최상정도 파라미터 또는 구조체 멤버 파라미터의 핸들을 얻어온다.
GetParameterBySemantic의미들로 참조해, 최상정도 파라미터 또는 구조체 멤버 파라미터의 핸들을 얻어온다.
GetParameterDesc파라미터 또는 어노테이션의 기술을 얻어온다.
GetParameterElement배열 요소 파라미터의 핸들을 얻어온다.
GetPass패스의 핸들을 얻어온다.
GetPassByName이름으로 참조해, 패스의 핸들을 얻어온다.
GetPassDesc패스의 기술을 얻어온다.
GetPixelShader픽셀 셰이더를 얻어온다.
GetPool공유 파라미터의 풀의 포인터를 얻어온다.
GetString캐릭터 라인을 얻어온다.
GetTechnique테크닉의 핸들을 얻어온다.
GetTechniqueByName이름으로 참조해, 테크닉의 핸들을 얻어온다.
GetTechniqueDesc테크닉의 기술을 얻어온다.
GetTexture텍스처를 얻어온다.
GetValue임의의 파라미터 또는 어노테이션의 값을 얻어온다. 이것에는, 단순형, 구조체, 배열, 캐릭터 라인, 셰이더, 텍스처가 포함된다. ID3DXBaseEffect 의 Getxxx 형식의 거의 모든 호출의 대신으로서 이 메서드를 사용할 수 있다.
GetVector벡터를 얻어온다.
GetVectorArray벡터의 배열을 얻어온다.
GetVertexShader정점 셰이더를 얻어온다.
IsParameterUsed

테크닉이 파라미터를 사용하고 있는지를 판별한다.

OnLostDevice

비디오 메모리 리소스에의 참조를 모두 릴리즈 해, 모든 스테이트 블록을 삭제한다.

OnResetDevice

장치가 리셋 된 후에 호출할 필요가 있다.

Pass지정한 테크닉의 패스에 대해, 스테이트의 설정을 적용한다.
SetBool불리언 값을 설정한다.
SetBoolArray불리언 값의 배열을 설정한다.
SetFloat부동 소수점값을 설정한다.
SetFloatArray부동 소수점값의 배열을 설정한다.
SetInt정수를 설정한다.
SetIntArray정수의 배열을 설정한다.
SetMatrix비전치행렬을 설정한다.
SetMatrixArray비전치행렬의 배열을 설정한다.
SetMatrixPointerArray비전치행렬의 포인터 배열을 설정한다.
SetMatrixTranspose전치행렬을 설정한다.
SetMatrixTransposeArray전치행렬의 배열을 설정한다.
SetMatrixTransposePointerArray전치행렬의 포인터 배열을 설정한다.
SetPixelShader픽셀 셰이더를 설정한다.
SetString캐릭터 라인을 설정한다.
SetTechnique

액티브한 테크닉을 설정한다.

SetTexture텍스처를 설정한다.
SetValue임의의 파라미터 또는 어노테이션의 값을 얻어온다. 이것에는, 단순형, 구조체, 배열, 캐릭터 라인, 셰이더, 텍스처가 포함된다. ID3DXBaseEffect 의 Setxxx 형식의 거의 모든 호출의 대신으로서 이 메서드를 사용할 수 있다.
SetVector벡터를 설정한다.
SetVectorArray벡터의 배열을 설정한다.
SetVertexShader정점 셰이더를 설정한다.
ValidateTechnique테크닉의 타당성을 확인한다.

주의

ID3DXEffect 인터페이스를 얻어오려면,D3DXCreateEffect ,D3DXCreateEffectFromFile , 또는 D3DXCreateEffectFromResource 를 호출한다.

LPD3DXEFFECT 형은,ID3DXEffect 인터페이스의 포인터로서 정의되고 있다.

typedef struct ID3DXEffect *LPD3DXEFFECT;

인터페이스의 정보

상속받은곳ID3DXBaseEffect
헤더d3dx9effect.h
임포트 라이브러리d3dx9.lib
최저한의 operating systemWindows 98

참조

D3DXCreateEffect ,D3DXCreateEffectFromFile ,D3DXCreateEffectFromResource


Posted by 멜데스
DirectX 3D/DirectX92016. 10. 26. 13:26

D3DXCreateEffectFromFile 함수


이펙트의 ASCII 기술 또는 바이너리 기술로부터 이펙트를 생성 한다.

구문

HRESULT D3DXCreateEffectFromFile(      

    LPDIRECT3DDEVICE9 pDevice,     LPCSTR pSrcFile,     CONST D3DXMACRO* pDefines,     LPD3DXINCLUDE pInclude,     DWORD Flags,     LPD3DXEFFECTPOOL pPool,     LPD3DXEFFECT* ppEffect,     LPD3DXBUFFER *ppCompilationErrors );

파라미터

pDevice
[in] 이펙트를 생성 하는 장치의 포인터. 「IDirect3DDevice9 」를 참조할것.
pSrcFile
[in] 파일명의 포인터. 이 인수는, Unicode 캐릭터 라인과 ANSI 캐릭터 라인의 양쪽 모두를 지원 하고 있다. 「주의」를 참조할것.
pDefines
[in] 프리프로세서 매크로 정의의 NULL 로 끝나는 옵션의 배열. 「D3DXMACRO 」를 참조할것.
pInclude
[in] 옵션의 인터페이스 포인터 ID3DXInclude . #include 의사 명령의 처리에 사용한다. 이 값에 NULL 를 지정 하면, #includes 는 파일로부터 컴파일 하는 경우는 유효하지만, 리소스나 메모리로부터 컴파일 하는 경우는 에러가 된다.
Flags
[in] D3DXSHADER 로 식별되는 컴파일 옵션.
pPool
[in] 공유 인수로 사용하는 ID3DXEffectPool 개체의 포인터. 이 값에 NULL 를 지정 하면, 인수는 공유되지 않는다.
ppEffect
[out] 컴파일 된 이펙트가 저장 된 버퍼의 포인터를 돌려준다. 「ID3DXEffect 」를 참조할것.
ppCompilationErrors
[out] compile error의 일람이 저장 된 버퍼의 포인터를 돌려준다. 「ID3DXBuffer 」를 참조할것.

반환값

성공했을 경우는,D3D_OK 를 돌려준다.

실패했을 경우는, 다음의 몇개의 값을 돌려준다.

D3DERR_INVALIDCALL메서드의 호출이 무효이다. 예를 들어, 메서드의 인수에 무효인 값이 설정되어 있는 경우 등이다.
D3DXERR_INVALIDDATA데이터가 무효이다.
E_OUTOFMEMORYMicrosoft® Direct3D® 가 호출을 완료하기 위한 충분한 메모리를 할당할 수가 없었다.


주의

컴파일러 설정에 의해, 함수의 버전도 정해진다. Unicode 를 정의 하면, 함수 호출은D3DXCreateEffectFromFileW 에 해결된다. 그 이외의 경우, ANSI 캐릭터 라인이 사용되고 있으므로, 함수 호출은D3DXCreateEffectFromFileA 에 해결된다.

함수의 정보

헤더d3dx9effect.h
임포트 라이브러리d3dx9.lib
최저한의 operating systemWindows 98

참조

D3DXCompileShader ,D3DXCompileShaderFromResource


'DirectX 3D > DirectX9' 카테고리의 다른 글

42. ID3DXBuffer 인터페이스  (0) 2016.10.26
41. ID3DXEffect 인터페이스  (0) 2016.10.26
39. D3DVERTEXELEMENT9 구조체  (0) 2016.10.18
38. D3DXComputeBoundingBox 함수  (0) 2016.10.18
37. ID3DXAnimationSet 인터페이스  (0) 2016.10.13
Posted by 멜데스