D3DHAL_CALLBACKS 구조체(d3dhal.h)

D3DHAL_CALLBACKS 드라이버에서 제공하는 Direct3D 지원을 설명하는 여러 콜백 구조 중 하나입니다.

구문

typedef struct _D3DHAL_CALLBACKS {
  DWORD                        dwSize;
  LPD3DHAL_CONTEXTCREATECB     ContextCreate;
  LPD3DHAL_CONTEXTDESTROYCB    ContextDestroy;
  LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
  LPD3DHAL_SCENECAPTURECB      SceneCapture;
  LPVOID                       lpReserved10;
  LPVOID                       lpReserved11;
  LPD3DHAL_RENDERSTATECB       RenderState;
  LPD3DHAL_RENDERPRIMITIVECB   RenderPrimitive;
  DWORD                        dwReserved;
  LPD3DHAL_TEXTURECREATECB     TextureCreate;
  LPD3DHAL_TEXTUREDESTROYCB    TextureDestroy;
  LPD3DHAL_TEXTURESWAPCB       TextureSwap;
  LPD3DHAL_TEXTUREGETSURFCB    TextureGetSurf;
  LPVOID                       lpReserved12;
  LPVOID                       lpReserved13;
  LPVOID                       lpReserved14;
  LPVOID                       lpReserved15;
  LPVOID                       lpReserved16;
  LPVOID                       lpReserved17;
  LPVOID                       lpReserved18;
  LPVOID                       lpReserved19;
  LPVOID                       lpReserved20;
  LPVOID                       lpReserved21;
  LPD3DHAL_GETSTATECB          GetState;
  DWORD                        dwReserved0;
  DWORD                        dwReserved1;
  DWORD                        dwReserved2;
  DWORD                        dwReserved3;
  DWORD                        dwReserved4;
  DWORD                        dwReserved5;
  DWORD                        dwReserved6;
  DWORD                        dwReserved7;
  DWORD                        dwReserved8;
  DWORD                        dwReserved9;
} D3DHAL_CALLBACKS, *LPD3DHAL_CALLBACKS;

멤버

dwSize

이 D3DHAL_CALLBACKS 구조체의 크기(바이트)를 지정합니다.

ContextCreate

드라이버 제공 D3dContext콜백 만들기를 가리킵니다. 드라이버는 이 멤버가 가리키는 콜백을 구현해야 합니다.

ContextDestroy

드라이버 제공 D3dContextDestroy 콜백을 가리킵니다. 드라이버는 이 멤버가 가리키는 콜백을 구현해야 합니다.

ContextDestroyAll

Windows 2000 이상 드라이버에서 NULL 로 설정해야 합니다.

SceneCapture

Windows 2000 이상 드라이버에서 NULL 로 설정해야 합니다. DirectX 6.0의 경우 드라이버 제공 D3dSceneCapture 콜백에 대한 포인터입니다. DirectX 7.0 이상의 경우 이 콜백은 D3dDrawPrimitives2 함수에서 D3DRENDERSTATE_SCENECAPTURE 렌더링 상태를 처리하는 것으로 대체되었습니다.

lpReserved10

0이어야 합니다.

lpReserved11

0이어야 합니다.

RenderState

드라이버 제공 D3DHAL_RENDERSTATEDATA 콜백을 가리킵니다. 드라이버는 이 멤버가 가리키는 콜백을 구현해야 합니다.

RenderPrimitive

드라이버 제공 D3DHAL_RENDERPRIMITIVEDATA 콜백을 가리킵니다. 드라이버는 이 멤버가 가리키는 콜백을 구현해야 합니다.

dwReserved

예약 필드를 지정하고 0으로 설정해야 합니다.

TextureCreate

Windows 2000 이상 드라이버에서 NULL 로 설정해야 합니다. DirectX 6.0의 경우 드라이버 제공 D3dTextureCreate 콜백 또는 NULL에 대한 포인터입니다.

TextureDestroy

Windows 2000 이상 드라이버에서 NULL 로 설정해야 합니다. DirectX 6.0의 경우 드라이버 제공 D3dTextureDestroy 콜백 또는 NULL에 대한 포인터입니다.

TextureSwap

Windows 2000 이상 드라이버에서 NULL 로 설정해야 합니다. DirectX 6.0의 경우 드라이버 제공 D3dTextureSwap 콜백 또는 NULL에 대한 포인터입니다.

TextureGetSurf

Windows 2000 이상 드라이버에서 NULL 로 설정해야 합니다. DirectX 6.0의 경우 드라이버 제공 D3dTextureGetSurf 콜백 또는 NULL에 대한 포인터입니다.

lpReserved12

0이어야 합니다.

lpReserved13

0이어야 합니다.

lpReserved14

0이어야 합니다.

lpReserved15

0이어야 합니다.

lpReserved16

0이어야 합니다.

lpReserved17

0이어야 합니다.

lpReserved18

0이어야 합니다.

lpReserved19

0이어야 합니다.

lpReserved20

0이어야 합니다.

lpReserved21

0이어야 합니다.

GetState

드라이버 제공 D3DHAL_GETSTATEDATA 콜백을 가리킵니다. 드라이버는 이 멤버가 가리키는 콜백을 구현해야 합니다.

dwReserved0

0이어야 합니다.

dwReserved1

0이어야 합니다.

dwReserved2

0이어야 합니다.

dwReserved3

0이어야 합니다.

dwReserved4

0이어야 합니다.

dwReserved5

0이어야 합니다.

dwReserved6

0이어야 합니다.

dwReserved7

0이어야 합니다.

dwReserved8

0이어야 합니다.

dwReserved9

0이어야 합니다.

설명

드라이버는 이 구조를 할당하고 모든 멤버에 적절한 값을 설정합니다. 드라이버의 DrvGetDirectDrawInfo 함수는 DD_HALINFO 구조체의 lpD3DHALCallbacks 멤버에서 이 구조체에 대한 포인터를 반환합니다.

이제 드라이버의 D3dDrawPrimitives2 구현에서 관리되는 opcode를 통해 텍스처 관리가 처리됩니다.

요구 사항

요구 사항
헤더 d3dhal.h(D3dhal.h 포함)

추가 정보

D3DHAL_CALLBACKS3

D3dContextCreate

D3dContextDestroy

D3dDrawPrimitives2

DdGetDriverInfo

DrvGetDirectDrawInfo