2 * Direct3D wine internal public interface file
4 * Copyright 2002-2003 The wine-d3d team
5 * Copyright 2002-2003 Raphael Junqueira
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 #ifndef __WINE_WINED3D_INTERFACE_H
23 #define __WINE_WINED3D_INTERFACE_H
25 #if !defined( __WINE_CONFIG_H )
26 # error You must include config.h to use this header
29 #if !defined( __WINE_D3D8_H ) && !defined( __WINE_D3D9_H )
30 # error You must include d3d8.h or d3d9.h header to use this header
33 /*****************************************************************
34 * THIS FILE MUST NOT CONTAIN X11 or MESA DEFINES
35 * PLEASE USE wine/wined3d_gl.h INSTEAD
38 /*****************************************************************
43 #define MAX_PALETTES 256
44 #define MAX_STREAMS 16
45 #define MAX_CLIPPLANES D3DMAXUSERCLIPPLANES
46 #define MAX_LEVELS 256
48 /* Other useful values */
49 #define HIGHEST_RENDER_STATE 174
50 #define HIGHEST_TEXTURE_STATE 29
51 #define HIGHEST_TRANSFORMSTATE 512
52 #define D3DSBT_RECORDED 0xfffffffe
54 #define D3D_VSHADER_MAX_CONSTANTS 96
55 #define D3D_PSHADER_MAX_CONSTANTS 32
57 /*****************************************************************
61 #include "wine/wined3d_gl.h"
62 #include "wine/wined3d_types.h"
68 /*****************************************************************
72 typedef struct IDirect3DImpl IDirect3DImpl
;
73 typedef struct IDirect3DBaseTextureImpl IDirect3DBaseTextureImpl
;
74 typedef struct IDirect3DVolumeTextureImpl IDirect3DVolumeTextureImpl
;
75 typedef struct IDirect3DDeviceImpl IDirect3DDeviceImpl
;
76 typedef struct IDirect3DTextureImpl IDirect3DTextureImpl
;
77 typedef struct IDirect3DCubeTextureImpl IDirect3DCubeTextureImpl
;
78 typedef struct IDirect3DIndexBufferImpl IDirect3DIndexBufferImpl
;
79 typedef struct IDirect3DSurfaceImpl IDirect3DSurfaceImpl
;
80 typedef struct IDirect3DSwapChainImpl IDirect3DSwapChainImpl
;
81 typedef struct IDirect3DResourceImpl IDirect3DResourceImpl
;
82 typedef struct IDirect3DVolumeImpl IDirect3DVolumeImpl
;
83 typedef struct IDirect3DVertexBufferImpl IDirect3DVertexBufferImpl
;
84 typedef struct IDirect3DStateBlockImpl IDirect3DStateBlockImpl
;
85 typedef struct IDirect3DVertexShaderImpl IDirect3DVertexShaderImpl
;
86 typedef struct IDirect3DPixelShaderImpl IDirect3DPixelShaderImpl
;
87 typedef struct IDirect3DVertexShaderDeclarationImpl IDirect3DVertexShaderDeclarationImpl
;
90 /*************************************************************
91 * d3dcore interfaces defs
94 /** Vertex Shader API */
95 extern HRESULT WINAPI
IDirect3DVertexShaderImpl_ParseProgram(IDirect3DVertexShaderImpl
* This
, CONST DWORD
* pFunction
);
96 extern HRESULT WINAPI
IDirect3DVertexShaderImpl_GetFunction(IDirect3DVertexShaderImpl
* This
, VOID
* pData
, UINT
* pSizeOfData
);
97 extern HRESULT WINAPI
IDirect3DVertexShaderImpl_SetConstantB(IDirect3DVertexShaderImpl
* This
, UINT StartRegister
, CONST BOOL
* pConstantData
, UINT BoolCount
);
98 extern HRESULT WINAPI
IDirect3DVertexShaderImpl_SetConstantI(IDirect3DVertexShaderImpl
* This
, UINT StartRegister
, CONST INT
* pConstantData
, UINT Vector4iCount
);
99 extern HRESULT WINAPI
IDirect3DVertexShaderImpl_SetConstantF(IDirect3DVertexShaderImpl
* This
, UINT StartRegister
, CONST FLOAT
* pConstantData
, UINT Vector4fCount
);
100 extern HRESULT WINAPI
IDirect3DVertexShaderImpl_GetConstantB(IDirect3DVertexShaderImpl
* This
, UINT StartRegister
, BOOL
* pConstantData
, UINT BoolCount
);
101 extern HRESULT WINAPI
IDirect3DVertexShaderImpl_GetConstantI(IDirect3DVertexShaderImpl
* This
, UINT StartRegister
, INT
* pConstantData
, UINT Vector4iCount
);
102 extern HRESULT WINAPI
IDirect3DVertexShaderImpl_GetConstantF(IDirect3DVertexShaderImpl
* This
, UINT StartRegister
, FLOAT
* pConstantData
, UINT Vector4fCount
);
103 /* internal Interfaces */
104 extern DWORD WINAPI
IDirect3DVertexShaderImpl_GetVersion(IDirect3DVertexShaderImpl
* This
);
105 extern HRESULT WINAPI
IDirect3DVertexShaderImpl_ExecuteSW(IDirect3DVertexShaderImpl
* This
, VSHADERINPUTDATA
* input
, VSHADEROUTPUTDATA
* output
);
109 #endif /* defined(__cplusplus) */
111 /* Define the main entrypoint as well */
112 IDirect3DImpl
* WINAPI
WineDirect3DCreate(UINT SDKVersion
);
116 #endif /* defined(__cplusplus) */