453 lines
17 KiB
C
453 lines
17 KiB
C
/*==========================================================================;
|
|
*
|
|
* Copyright (C) 1995-1996 Microsoft Corporation. All Rights Reserved.
|
|
*
|
|
* File: d3dhal.h
|
|
* Content: Direct3D HAL include file
|
|
*@@BEGIN_MSINTERNAL
|
|
* History:
|
|
* Date By Reason
|
|
* ==== == ======
|
|
* 03/11/95 stevela Initial revision.
|
|
* servank
|
|
* 04/11/95 stevela Context added to call blocks.
|
|
* Materials added. Required as lighting references
|
|
* handles.
|
|
* SetViewportData HAL function added.
|
|
* 10/11/95 stevela Pack structures for driver -p4 option...
|
|
* 11/11/95 stevela Remove definition of D3DHALCreateDriver.
|
|
* Add lpDDSZ to D3DHAL_CONTEXTCREATEDATA.
|
|
* Definition of lpLocalVertexBuffer changed to
|
|
* LPD3DTLVERTEX.
|
|
* 07/12/95 stevela Added texture swapping.
|
|
* 18/12/95 stevela Added GetState and GetMatrix.
|
|
* 17/02/95 stevela Use execute buffers for tl and h vertex buffers
|
|
* 23/02/95 dougrab Change all handles to DWORD
|
|
* 02/03/96 colinmc Minor build fix
|
|
* 17/04/96 stevela Use ddraw.h externally and ddrawp.h internally
|
|
*@@END_MSINTERNAL
|
|
*
|
|
***************************************************************************/
|
|
|
|
#ifndef _D3DHAL_H_
|
|
#define _D3DHAL_H_
|
|
|
|
//@@BEGIN_MSINTERNAL
|
|
#include "ddrawp.h"
|
|
#if 0
|
|
//@@END_MSINTERNAL
|
|
#include "ddraw.h"
|
|
//@@BEGIN_MSINTERNAL
|
|
#endif
|
|
//@@END_MSINTERNAL
|
|
#include "d3dtypes.h"
|
|
#include "d3dcaps.h"
|
|
#include "ddrawi.h"
|
|
|
|
/*
|
|
* If the HAL driver does not implement clipping, it must reserve at least
|
|
* this much space at the end of the LocalVertexBuffer for use by the HEL
|
|
* clipping. I.e. the vertex buffer contain dwNumVertices+dwNumClipVertices
|
|
* vertices. No extra space is needed by the HEL clipping in the
|
|
* LocalHVertexBuffer.
|
|
*/
|
|
#define D3DHAL_NUMCLIPVERTICES 20
|
|
|
|
/*
|
|
* If no dwNumVertices is given, this is what will be used.
|
|
*/
|
|
#define D3DHAL_DEFAULT_TL_NUM ((32 * 1024) / sizeof (D3DTLVERTEX))
|
|
#define D3DHAL_DEFAULT_H_NUM ((32 * 1024) / sizeof (D3DHVERTEX))
|
|
|
|
/* --------------------------------------------------------------
|
|
* Instantiated by the HAL driver on driver connection.
|
|
*/
|
|
typedef struct _D3DHAL_GLOBALDRIVERDATA {
|
|
DWORD dwSize; // Size of this structure
|
|
D3DDEVICEDESC hwCaps; // Capabilities of the hardware
|
|
DWORD dwNumVertices; // see following comment
|
|
DWORD dwNumClipVertices; // see following comment
|
|
DWORD dwNumTextureFormats; // Number of texture formats
|
|
LPDDSURFACEDESC lpTextureFormats; // Pointer to texture formats
|
|
} D3DHAL_GLOBALDRIVERDATA;
|
|
typedef D3DHAL_GLOBALDRIVERDATA *LPD3DHAL_GLOBALDRIVERDATA;
|
|
|
|
/*
|
|
* Regarding dwNumVertices, specify 0 if you are relying on the HEL to do
|
|
* everything and you do not need the resultant TLVertex buffer to reside
|
|
* in device memory.
|
|
* The HAL driver will be asked to allocate dwNumVertices + dwNumClipVertices
|
|
* in the case described above.
|
|
*/
|
|
|
|
/* --------------------------------------------------------------
|
|
* Direct3D HAL Table.
|
|
* Instantiated by the HAL driver on connection.
|
|
*
|
|
* Calls take the form of:
|
|
* retcode = HalCall(HalCallData* lpData);
|
|
*/
|
|
|
|
typedef DWORD (__stdcall *LPD3DHAL_CONTEXTCREATECB) (LPD3DHAL_CONTEXTCREATEDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_CONTEXTDESTROYCB) (LPD3DHAL_CONTEXTDESTROYDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_CONTEXTDESTROYALLCB) (LPD3DHAL_CONTEXTDESTROYALLDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_SCENECAPTURECB) (LPD3DHAL_SCENECAPTUREDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_EXECUTECB) (LPD3DHAL_EXECUTEDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_EXECUTECLIPPEDCB) (LPD3DHAL_EXECUTECLIPPEDDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_RENDERSTATECB) (LPD3DHAL_RENDERSTATEDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_RENDERPRIMITIVECB) (LPD3DHAL_RENDERPRIMITIVEDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_EXECUTECLIPPEDCB) (LPD3DHAL_EXECUTECLIPPEDDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_TEXTURECREATECB) (LPD3DHAL_TEXTURECREATEDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_TEXTUREDESTROYCB) (LPD3DHAL_TEXTUREDESTROYDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_TEXTURESWAPCB) (LPD3DHAL_TEXTURESWAPDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_TEXTUREGETSURFCB) (LPD3DHAL_TEXTUREGETSURFDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_MATRIXCREATECB) (LPD3DHAL_MATRIXCREATEDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_MATRIXDESTROYCB) (LPD3DHAL_MATRIXDESTROYDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_MATRIXSETDATACB) (LPD3DHAL_MATRIXSETDATADATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_MATRIXGETDATACB) (LPD3DHAL_MATRIXGETDATADATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_SETVIEWPORTDATACB) (LPD3DHAL_SETVIEWPORTDATADATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_LIGHTSETCB) (LPD3DHAL_LIGHTSETDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_MATERIALCREATECB) (LPD3DHAL_MATERIALCREATEDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_MATERIALDESTROYCB) (LPD3DHAL_MATERIALDESTROYDATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_MATERIALSETDATACB) (LPD3DHAL_MATERIALSETDATADATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_MATERIALGETDATACB) (LPD3DHAL_MATERIALGETDATADATA);
|
|
typedef DWORD (__stdcall *LPD3DHAL_GETSTATECB) (LPD3DHAL_GETSTATEDATA);
|
|
|
|
typedef struct _D3DHAL_CALLBACKS {
|
|
DWORD dwSize;
|
|
|
|
// Device context
|
|
LPD3DHAL_CONTEXTCREATECB ContextCreate;
|
|
LPD3DHAL_CONTEXTDESTROYCB ContextDestroy;
|
|
LPD3DHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
|
|
|
|
// Scene Capture
|
|
LPD3DHAL_SCENECAPTURECB SceneCapture;
|
|
|
|
// Execution
|
|
LPD3DHAL_EXECUTECB Execute;
|
|
LPD3DHAL_EXECUTECLIPPEDCB ExecuteClipped;
|
|
LPD3DHAL_RENDERSTATECB RenderState;
|
|
LPD3DHAL_RENDERPRIMITIVECB RenderPrimitive;
|
|
|
|
DWORD dwReserved; // Must be zero
|
|
|
|
// Textures
|
|
LPD3DHAL_TEXTURECREATECB TextureCreate;
|
|
LPD3DHAL_TEXTUREDESTROYCB TextureDestroy;
|
|
LPD3DHAL_TEXTURESWAPCB TextureSwap;
|
|
LPD3DHAL_TEXTUREGETSURFCB TextureGetSurf;
|
|
|
|
// Transform
|
|
LPD3DHAL_MATRIXCREATECB MatrixCreate;
|
|
LPD3DHAL_MATRIXDESTROYCB MatrixDestroy;
|
|
LPD3DHAL_MATRIXSETDATACB MatrixSetData;
|
|
LPD3DHAL_MATRIXGETDATACB MatrixGetData;
|
|
LPD3DHAL_SETVIEWPORTDATACB SetViewportData;
|
|
|
|
// Lighting
|
|
LPD3DHAL_LIGHTSETCB LightSet;
|
|
LPD3DHAL_MATERIALCREATECB MaterialCreate;
|
|
LPD3DHAL_MATERIALDESTROYCB MaterialDestroy;
|
|
LPD3DHAL_MATERIALSETDATACB MaterialSetData;
|
|
LPD3DHAL_MATERIALGETDATACB MaterialGetData;
|
|
|
|
// Pipeline state
|
|
LPD3DHAL_GETSTATECB GetState;
|
|
|
|
DWORD dwReserved0; // Must be zero
|
|
DWORD dwReserved1; // Must be zero
|
|
DWORD dwReserved2; // Must be zero
|
|
DWORD dwReserved3; // Must be zero
|
|
DWORD dwReserved4; // Must be zero
|
|
DWORD dwReserved5; // Must be zero
|
|
DWORD dwReserved6; // Must be zero
|
|
DWORD dwReserved7; // Must be zero
|
|
DWORD dwReserved8; // Must be zero
|
|
DWORD dwReserved9; // Must be zero
|
|
|
|
} D3DHAL_CALLBACKS;
|
|
typedef D3DHAL_CALLBACKS *LPD3DHAL_CALLBACKS;
|
|
|
|
#define D3DHAL_SIZE_V1 sizeof( D3DHAL_CALLBACKS )
|
|
|
|
/* --------------------------------------------------------------
|
|
* Argument to the HAL functions.
|
|
*/
|
|
|
|
#include "d3di.h"
|
|
|
|
typedef struct _D3DHAL_CONTEXTCREATEDATA {
|
|
LPDDRAWI_DIRECTDRAW_GBL lpDDGbl; // in: Driver struct
|
|
LPDIRECTDRAWSURFACE lpDDS; // in: Surface to be used as target
|
|
LPDIRECTDRAWSURFACE lpDDSZ; // in: Surface to be used as Z
|
|
DWORD dwPID; // in: Current process id
|
|
DWORD dwhContext; // out: Context handle
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_CONTEXTCREATEDATA;
|
|
typedef D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
|
|
|
|
typedef struct _D3DHAL_CONTEXTDESTROYDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_CONTEXTDESTROYDATA;
|
|
typedef D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
|
|
|
|
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
|
|
DWORD dwPID; // in: Process id to destroy contexts for
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_CONTEXTDESTROYALLDATA;
|
|
typedef D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
|
|
|
|
typedef struct _D3DHAL_SCENECAPTUREDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwFlag; // in: Indicates beginning or end
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_SCENECAPTUREDATA;
|
|
typedef D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
|
|
|
|
typedef struct _D3DHAL_EXECUTEDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwOffset; // in/out: Where to start/error occured
|
|
DWORD dwFlags; // in: Flags for this execute
|
|
DWORD dwStatus; // in/out: Condition branch status
|
|
D3DI_EXECUTEDATA deExData; // in: Execute data describing buffer
|
|
LPDIRECTDRAWSURFACE lpExeBuf; // in: Execute buffer containing data
|
|
LPDIRECTDRAWSURFACE lpTLBuf; // in: Execute buffer containing TLVertex data
|
|
// Only provided if HEL performing transform
|
|
D3DINSTRUCTION diInstruction; // in: Optional one off instruction
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_EXECUTEDATA;
|
|
typedef D3DHAL_EXECUTEDATA *LPD3DHAL_EXECUTEDATA;
|
|
|
|
typedef struct _D3DHAL_EXECUTECLIPPEDDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwOffset; // in/out: Where to start/error occured
|
|
DWORD dwFlags; // in: Flags for this execute
|
|
DWORD dwStatus; // in/out: Condition branch status
|
|
D3DI_EXECUTEDATA deExData; // in: Execute data describing buffer
|
|
LPDIRECTDRAWSURFACE lpExeBuf; // in: Execute buffer containing data
|
|
LPDIRECTDRAWSURFACE lpTLBuf; // in: Execute buffer containing TLVertex data
|
|
// Only provided if HEL performing transform
|
|
LPDIRECTDRAWSURFACE lpHBuf; // in: Execute buffer containing HVertex data
|
|
// Only provided if HEL performing transform
|
|
D3DINSTRUCTION diInstruction; // in: Optional one off instruction
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_EXECUTECLIPPEDDATA;
|
|
typedef D3DHAL_EXECUTECLIPPEDDATA *LPD3DHAL_EXECUTECLIPPEDDATA;
|
|
|
|
typedef struct _D3DHAL_RENDERSTATEDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwOffset; // in: Where to find states in buffer
|
|
DWORD dwCount; // in: How many states to process
|
|
LPDIRECTDRAWSURFACE lpExeBuf; // in: Execute buffer containing data
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_RENDERSTATEDATA;
|
|
typedef D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
|
|
|
|
typedef struct _D3DHAL_RENDERPRIMITIVEDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwOffset; // in: Where to find primitive data in buffer
|
|
DWORD dwStatus; // in/out: Condition branch status
|
|
LPDIRECTDRAWSURFACE lpExeBuf; // in: Execute buffer containing data
|
|
DWORD dwTLOffset; // in: Byte offset in lpTLBuf for start of vertex data
|
|
LPDIRECTDRAWSURFACE lpTLBuf; // in: Execute buffer containing TLVertex data
|
|
D3DINSTRUCTION diInstruction; // in: Primitive instruction
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_RENDERPRIMITIVEDATA;
|
|
typedef D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
|
|
|
|
typedef struct _D3DHAL_TEXTURECREATEDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
LPDIRECTDRAWSURFACE lpDDS; // in: Pointer to surface object
|
|
DWORD dwHandle; // out: Handle to texture
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_TEXTURECREATEDATA;
|
|
typedef D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
|
|
|
|
typedef struct _D3DHAL_TEXTUREDESTROYDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle; // in: Handle to texture
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_TEXTUREDESTROYDATA;
|
|
typedef D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
|
|
|
|
typedef struct _D3DHAL_TEXTURESWAPDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle1; // in: Handle to texture 1
|
|
DWORD dwHandle2; // in: Handle to texture 2
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_TEXTURESWAPDATA;
|
|
typedef D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
|
|
|
|
typedef struct _D3DHAL_TEXTUREGETSURFDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD lpDDS; // out: Pointer to surface object
|
|
DWORD dwHandle; // in: Handle to texture
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_TEXTUREGETSURFDATA;
|
|
typedef D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
|
|
|
|
typedef struct _D3DHAL_MATRIXCREATEDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle; // out: Handle to matrix
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_MATRIXCREATEDATA;
|
|
typedef D3DHAL_MATRIXCREATEDATA *LPD3DHAL_MATRIXCREATEDATA;
|
|
|
|
typedef struct _D3DHAL_MATRIXDESTROYDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle; // in: Handle to matrix
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_MATRIXDESTROYDATA;
|
|
typedef D3DHAL_MATRIXDESTROYDATA *LPD3DHAL_MATRIXDESTROYDATA;
|
|
|
|
typedef struct _D3DHAL_MATRIXSETDATADATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle; // in: Handle to matrix
|
|
D3DMATRIX dmMatrix; // in: Matrix data
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_MATRIXSETDATADATA;
|
|
typedef D3DHAL_MATRIXSETDATADATA *LPD3DHAL_MATRIXSETDATADATA;
|
|
|
|
typedef struct _D3DHAL_MATRIXGETDATADATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle; // in: Handle to matrix
|
|
D3DMATRIX dmMatrix; // out: Matrix data
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_MATRIXGETDATADATA;
|
|
typedef D3DHAL_MATRIXGETDATADATA *LPD3DHAL_MATRIXGETDATADATA;
|
|
|
|
typedef struct _D3DHAL_SETVIEWPORTDATADATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwViewportID; // in: ID of viewport
|
|
D3DVIEWPORT dvViewData; // in: Viewport data
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_SETVIEWPORTDATADATA;
|
|
typedef D3DHAL_SETVIEWPORTDATADATA *LPD3DHAL_SETVIEWPORTDATADATA;
|
|
|
|
typedef struct _D3DHAL_LIGHTSETDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwLight; // in: Which light to set
|
|
D3DI_LIGHT dlLight; // in: Light data
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_LIGHTSETDATA;
|
|
typedef D3DHAL_LIGHTSETDATA *LPD3DHAL_LIGHTSETDATA;
|
|
|
|
typedef struct _D3DHAL_MATERIALCREATEDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle; // out: Handle to material
|
|
D3DMATERIAL dmMaterial; // in: Material data
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_MATERIALCREATEDATA;
|
|
typedef D3DHAL_MATERIALCREATEDATA *LPD3DHAL_MATERIALCREATEDATA;
|
|
|
|
typedef struct _D3DHAL_MATERIALDESTROYDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle; // in: Handle to material
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_MATERIALDESTROYDATA;
|
|
typedef D3DHAL_MATERIALDESTROYDATA *LPD3DHAL_MATERIALDESTROYDATA;
|
|
|
|
typedef struct _D3DHAL_MATERIALSETDATADATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle; // in: Handle to material
|
|
D3DMATERIAL dmMaterial; // in: Material data
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_MATERIALSETDATADATA;
|
|
typedef D3DHAL_MATERIALSETDATADATA *LPD3DHAL_MATERIALSETDATADATA;
|
|
|
|
typedef struct _D3DHAL_MATERIALGETDATADATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwHandle; // in: Handle to material
|
|
D3DMATERIAL dmMaterial; // out: Material data
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_MATERIALGETDATADATA;
|
|
typedef D3DHAL_MATERIALGETDATADATA *LPD3DHAL_MATERIALGETDATADATA;
|
|
|
|
typedef struct _D3DHAL_GETSTATEDATA {
|
|
DWORD dwhContext; // in: Context handle
|
|
DWORD dwWhich; // in: Transform, lighting or render?
|
|
D3DSTATE ddState; // in/out: State.
|
|
HRESULT ddrval; // out: Return value
|
|
} D3DHAL_GETSTATEDATA;
|
|
typedef D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
|
|
|
|
/* --------------------------------------------------------------
|
|
* Flags for the data parameters.
|
|
*/
|
|
|
|
/*
|
|
* SceneCapture()
|
|
* This is used as an indication to the driver that a scene is about to
|
|
* start or end, and that it should capture data if required.
|
|
*/
|
|
#define D3DHAL_SCENE_CAPTURE_START 0x00000000L
|
|
#define D3DHAL_SCENE_CAPTURE_END 0x00000001L
|
|
|
|
/*
|
|
* Execute()
|
|
*/
|
|
|
|
/*
|
|
* Use the instruction stream starting at dwOffset.
|
|
*/
|
|
#define D3DHAL_EXECUTE_NORMAL 0x00000000L
|
|
|
|
/*
|
|
* Use the optional instruction override (diInstruction) and return
|
|
* after completion. dwOffset is the offset to the first primitive.
|
|
*/
|
|
#define D3DHAL_EXECUTE_OVERRIDE 0x00000001L
|
|
|
|
/*
|
|
* GetState()
|
|
* The driver will get passed a flag in dwWhich specifying which module
|
|
* the state must come from. The driver then fills in ulArg[1] with the
|
|
* appropriate value depending on the state type given in ddState.
|
|
*/
|
|
|
|
/*
|
|
* The following are used to get the state of a particular stage of the
|
|
* pipeline.
|
|
*/
|
|
#define D3DHALSTATE_GET_TRANSFORM 0x00000001L
|
|
#define D3DHALSTATE_GET_LIGHT 0x00000002L
|
|
#define D3DHALSTATE_GET_RENDER 0x00000004L
|
|
|
|
|
|
/* --------------------------------------------------------------
|
|
* Return values from HAL functions.
|
|
*/
|
|
|
|
/*
|
|
* The context passed in was bad.
|
|
*/
|
|
#define D3DHAL_CONTEXT_BAD 0x000000200L
|
|
|
|
/*
|
|
* No more contexts left.
|
|
*/
|
|
#define D3DHAL_OUTOFCONTEXTS 0x000000201L
|
|
|
|
/*
|
|
* Execute() and ExecuteClipped()
|
|
*/
|
|
|
|
/*
|
|
* Executed to completion via early out.
|
|
* (e.g. totally clipped)
|
|
*/
|
|
#define D3DHAL_EXECUTE_ABORT 0x00000210L
|
|
|
|
/*
|
|
* An unhandled instruction code was found (e.g. D3DOP_TRANSFORM).
|
|
* The dwOffset parameter must be set to the offset of the unhandled
|
|
* instruction.
|
|
*
|
|
* Only valid from Execute()
|
|
*/
|
|
#define D3DHAL_EXECUTE_UNHANDLED 0x00000211L
|
|
|
|
#endif /* _D3DHAL_H */
|