d3dhal.h revision 4b9d6701570cb98fd36e209314239d104ec584d3
/*
* Direct3D driver interface
* (DirectX 7 version)
*
* Copyright (C) 2001 Ove Kaaven
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
* other than GPL or LGPL is available it will apply instead, Oracle elects to use only
* the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
* a choice of LGPL license versions is made available with the language indicating
* that LGPLv2 or any later version may be used, or where a choice of which version
* of the LGPL is applied is otherwise unspecified.
*/
#ifndef __WINE_D3DHAL_H
#define __WINE_D3DHAL_H
#ifdef __cplusplus
extern "C" {
#endif
#include <d3d.h>
/*****************************************************************************
* device info structures
*/
typedef struct _D3DDeviceDesc_V1 {
/* this is to allow keeping the bulk of our OpenGL code out of x11drv */
#define D3DDD_WINE_OPENGL_DEVICE 0x00008000
typedef struct _D3DHAL_GLOBALDRIVERDATA {
typedef struct _D3DHAL_D3DEXTENDEDCAPS {
/* DirectX 5 */
/* DirectX 6 */
/* DirectX 7 */
/*****************************************************************************
* d3d->driver callbacks
*/
typedef struct _D3DHAL_CONTEXTCREATEDATA *LPD3DHAL_CONTEXTCREATEDATA;
typedef struct _D3DHAL_CONTEXTDESTROYDATA *LPD3DHAL_CONTEXTDESTROYDATA;
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA *LPD3DHAL_CONTEXTDESTROYALLDATA;
typedef struct _D3DHAL_SCENECAPTUREDATA *LPD3DHAL_SCENECAPTUREDATA;
typedef struct _D3DHAL_RENDERSTATEDATA *LPD3DHAL_RENDERSTATEDATA;
typedef struct _D3DHAL_RENDERPRIMITIVEDATA *LPD3DHAL_RENDERPRIMITIVEDATA;
typedef struct _D3DHAL_TEXTURECREATEDATA *LPD3DHAL_TEXTURECREATEDATA;
typedef struct _D3DHAL_TEXTUREDESTROYDATA *LPD3DHAL_TEXTUREDESTROYDATA;
typedef struct _D3DHAL_TEXTURESWAPDATA *LPD3DHAL_TEXTURESWAPDATA;
typedef struct _D3DHAL_TEXTUREGETSURFDATA *LPD3DHAL_TEXTUREGETSURFDATA;
typedef struct _D3DHAL_GETSTATEDATA *LPD3DHAL_GETSTATEDATA;
typedef struct _D3DHAL_CALLBACKS {
/* now why did MS create CALLBACKS2 and CALLBACKS3 structures if
* all these reserved fields were available? we may never know */
typedef struct _D3DHAL_SETRENDERTARGETDATA *LPD3DHAL_SETRENDERTARGETDATA;
typedef struct _D3DHAL_CLEARDATA *LPD3DHAL_CLEARDATA;
typedef struct _D3DHAL_DRAWONEPRIMITIVEDATA *LPD3DHAL_DRAWONEPRIMITIVEDATA;
typedef struct _D3DHAL_DRAWONEINDEXEDPRIMITIVEDATA *LPD3DHAL_DRAWONEINDEXEDPRIMITIVEDATA;
typedef struct _D3DHAL_DRAWPRIMITIVESDATA *LPD3DHAL_DRAWPRIMITIVESDATA;
typedef struct _D3DHAL_CALLBACKS2 {
typedef struct _D3DHAL_CLEAR2DATA *LPD3DHAL_CLEAR2DATA;
typedef struct _D3DHAL_DRAWPRIMITIVES2DATA *LPD3DHAL_DRAWPRIMITIVES2DATA;
typedef DWORD (PASCAL *LPD3DHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DHAL_VALIDATETEXTURESTAGESTATEDATA);
typedef struct _D3DHAL_CALLBACKS3 {
/*****************************************************************************
* parameter structures
*/
typedef struct _D3DHAL_CONTEXTCREATEDATA {
union {
union {
union {
union {
typedef struct _D3DHAL_CONTEXTDESTROYDATA {
typedef struct _D3DHAL_CONTEXTDESTROYALLDATA {
typedef struct _D3DHAL_SCENECAPTUREDATA {
#define D3DHAL_SCENE_CAPTURE_START 0x00000000
#define D3DHAL_SCENE_CAPTURE_END 0x00000001
typedef struct _D3DHAL_SETRENDERTARGETDATA {
union {
union {
typedef struct _D3DHAL_DRAWPRIMITIVES2DATA {
union {
union {
#define D3DHALDP2_USERMEMVERTICES 0x00000001
#define D3DHALDP2_EXECUTEBUFFER 0x00000002
#define D3DHALDP2_SWAPVERTEXBUFFER 0x00000004
#define D3DHALDP2_SWAPCOMMANDBUFFER 0x00000008
#define D3DHALDP2_REQVERTEXBUFSIZE 0x00000010
#define D3DHALDP2_REQCOMMANDBUFSIZE 0x00000020
#define D3DHALDP2_VIDMEMVERTEXBUF 0x00000040
#define D3DHALDP2_VIDMEMCOMMANDBUF 0x00000080
/*****************************************************************************
* DrawPrimitives2 command structures
*/
typedef struct _D3DHAL_DP2COMMAND {
union {
typedef enum _D3DHAL_DP2OPERATION {
D3DDP2OP_POINTS = 1,
D3DDP2OP_RESERVED0 = 4,
D3DDP2OP_RENDERSTATE = 8,
D3DDP2OP_LINELIST = 15,
D3DDP2OP_LINESTRIP = 16,
D3DDP2OP_TRIANGLELIST = 18,
D3DDP2OP_TRIANGLESTRIP = 19,
D3DDP2OP_TRIANGLEFAN = 21,
D3DDP2OP_TRIANGLEFAN_IMM = 23,
D3DDP2OP_LINELIST_IMM = 24,
D3DDP2OP_VIEWPORTINFO = 28,
D3DDP2OP_WINFO = 29,
/* pre-DirectX 7 interfaces */
D3DDP2OP_SETPALETTE = 30,
D3DDP2OP_UPDATEPALETTE = 31,
/* DirectX 7 interfaces */
D3DDP2OP_ZRANGE = 32,
D3DDP2OP_SETMATERIAL = 33,
D3DDP2OP_SETLIGHT = 34,
D3DDP2OP_CREATELIGHT = 35,
D3DDP2OP_SETTRANSFORM = 36,
D3DDP2OP_EXT = 37,
D3DDP2OP_TEXBLT = 38,
D3DDP2OP_STATESET = 39,
D3DDP2OP_SETPRIORITY = 40,
/* all interfaces */
D3DDP2OP_SETRENDERTARGET = 41,
D3DDP2OP_CLEAR = 42,
/* DirectX 7 interfaces */
D3DDP2OP_SETTEXLOD = 43,
/* point primitives */
typedef struct _D3DHAL_POINTS {
/* line primitives */
typedef struct _D3DHAL_DP2STARTVERTEX {
typedef struct _D3DHAL_DP2LINELIST {
typedef struct _D3DHAL_DP2INDEXEDLINELIST {
typedef struct _D3DHAL_DP2LINESTRIP {
typedef struct _D3DHAL_DP2INDEXEDLINESTRIP {
/* triangle primitives */
typedef struct _D3DHAL_DP2TRIANGLELIST {
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST {
typedef struct _D3DHAL_DP2INDEXEDTRIANGLELIST2 {
typedef struct _D3DHAL_DP2TRIANGLESTRIP {
typedef struct _D3DHAL_DP2INDEXEDTRIANGLESTRIP {
typedef struct _D3DHAL_DP2TRIANGLEFAN {
typedef struct _D3DHAL_DP2INDEXEDTRIANGLEFAN {
typedef struct _D3DHAL_DP2TRIANGLEFAN_IMM {
/* render states */
typedef struct _D3DHAL_DP2RENDERSTATE {
union {
typedef struct _D3DHAL_DP2TEXTURESTAGESTATE {
#define D3DTSS_TEXTUREMAP 0
typedef struct _D3DHAL_DP2VIEWPORTINFO {
typedef struct _D3DHAL_DP2WINFO {
typedef struct _D3DHAL_DP2SETPALETTE {
typedef struct _D3DHAL_DP2UPDATEPALETTE {
typedef struct _D3DHAL_DP2ZRANGE {
typedef struct _D3DHAL_DP2SETLIGHT {
#define D3DHAL_SETLIGHT_ENABLE 0
#define D3DHAL_SETLIGHT_DISABLE 1
#define D3DHAL_SETLIGHT_DATA 2
typedef struct _D3DHAL_DP2CREATELIGHT {
typedef struct _D3DHAL_DP2SETTRANSFORM {
typedef struct _D3DHAL_DP2TEXBLT {
typedef struct _D3DHAL_DP2STATESET {
#define D3DHAL_STATESETBEGIN 0
#define D3DHAL_STATESETEND 1
#define D3DHAL_STATESETDELETE 2
#define D3DHAL_STATESETEXECUTE 3
#define D3DHAL_STATESETCAPTURE 4
typedef struct _D3DHAL_DP2SETPRIORITY {
typedef struct _D3DHAL_DP2SETRENDERTARGET {
typedef struct _D3DHAL_DP2CLEAR {
typedef struct _D3DHAL_DP2SETTEXLOD {
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* __WINE_DDRAWI_H */