/*
* Copyright (C) 2002 Jason Edmeades
*
* 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_D3D8TYPES_H
#define __WINE_D3D8TYPES_H
/*****************************************************************************
* Direct 3D v8 #defines
*/
#define D3DCOLOR_ARGB(a,r,g,b) ((D3DCOLOR)((((a)&0xff)<<24)|(((r)&0xff)<<16)|(((g)&0xff)<<8)|((b)&0xff)))
#define D3DCOLOR_COLORVALUE(r,g,b,a) D3DCOLOR_RGBA((DWORD)((r)*255.f),(DWORD)((g)*255.f),(DWORD)((b)*255.f),(DWORD)((a)*255.f))
#define D3DFVF_TEXTUREFORMAT2 0
#ifndef MAKEFOURCC
#endif
/****************************
* Vertex Shaders Declaration
*/
typedef enum _D3DVSD_TOKENTYPE {
D3DVSD_TOKEN_NOP = 0,
/* RESERVED = 6 */
/** input registers for vertex shaders functions */
/*
#define D3DVSDE_POSITION 0
#define D3DVSDE_BLENDWEIGHT 1
#define D3DVSDE_BLENDINDICES 2
#define D3DVSDE_NORMAL 3
#define D3DVSDE_PSIZE 4
#define D3DVSDE_DIFFUSE 5
#define D3DVSDE_SPECULAR 6
#define D3DVSDE_TEXCOORD0 7
#define D3DVSDE_TEXCOORD1 8
#define D3DVSDE_TEXCOORD2 9
#define D3DVSDE_TEXCOORD3 10
#define D3DVSDE_TEXCOORD4 11
#define D3DVSDE_TEXCOORD5 12
#define D3DVSDE_TEXCOORD6 13
#define D3DVSDE_TEXCOORD7 14
#define D3DVSDE_POSITION2 15
#define D3DVSDE_NORMAL2 16
*/
/** Address of the vertex register. 0 - 16 */
typedef enum _D3DVSDE_REGISTER {
D3DVSDE_POSITION = 0,
/** bit-field declaration for VertexRegister Type */
/*
#define D3DVSDT_FLOAT1 0x00
#define D3DVSDT_FLOAT2 0x01
#define D3DVSDT_FLOAT3 0x02
#define D3DVSDT_FLOAT4 0x03
#define D3DVSDT_D3DCOLOR 0x04
#define D3DVSDT_UBYTE4 0x05
#define D3DVSDT_SHORT2 0x06
#define D3DVSDT_SHORT4 0x07
*/
typedef enum _D3DVSDT_TYPE {
} D3DVSDT_TYPE;
#define D3DVSD_CONSTADDRESSSHIFT 0
#define D3DVSD_EXTINFOSHIFT 0
#define D3DVSD_STREAMNUMBERSHIFT 0
#define D3DVSD_VERTEXREGSHIFT 0
(D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_CONSTMEM) | ((Count) << D3DVSD_CONSTCOUNTSHIFT) | (ConstantAddress))
(D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_STREAMDATA) | ((Type) << D3DVSD_DATATYPESHIFT) | (VertexRegister))
#define D3DVSD_STREAM_TESS() \
(D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | ((RegisterIn) << D3DVSD_VERTEXREGINSHIFT) | ((0x02) << D3DVSD_DATATYPESHIFT) | (RegisterOut))
(D3DVSD_MAKETOKENTYPE(D3DVSD_TOKEN_TESSELLATOR) | 0x10000000 | ((0x01) << D3DVSD_DATATYPESHIFT) | (Register))
/********************************
*/
/** Maximum number of supported texture coordinates sets operation */
/** opcode token mask */
/** opcodes types for PS and VS */
typedef enum _D3DSHADER_INSTRUCTION_OPCODE_TYPE {
D3DSIO_NOP = 0,
/** for parallelism */
/** destination parameter modifiers (.xyzw) */
typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
/** destination param */
/** destination/source reg type */
typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
typedef enum _D3DVS_RASTOUT_OFFSETS {
D3DSRO_POSITION = 0,
typedef enum _D3DVS_ADDRESSMODE_TYPE {
#define D3DSP_NOSWIZZLE \
((0 << (D3DSP_SWIZZLE_SHIFT + 0)) | (1 << (D3DSP_SWIZZLE_SHIFT + 2)) | (2 << (D3DSP_SWIZZLE_SHIFT + 4)) | (3 << (D3DSP_SWIZZLE_SHIFT + 6)))
typedef enum _D3DSHADER_PARAM_SRCMOD_TYPE {
/*****************************************************************************
* Direct 3D v8 enumerated types
*/
typedef enum _D3DBACKBUFFER_TYPE {
typedef enum _D3DBASISTYPE{
D3DBASIS_BEZIER = 0,
} D3DBASISTYPE;
typedef enum _D3DBLEND {
} D3DBLEND;
typedef enum _D3DBLENDOP {
} D3DBLENDOP;
typedef enum _D3DCMPFUNC {
} D3DCMPFUNC;
typedef enum _D3DCUBEMAP_FACES {
typedef enum _D3DCULL {
} D3DCULL;
typedef enum _D3DDEBUGMONITORTOKENS {
D3DDMT_ENABLE = 0,
typedef enum _D3DDEVTYPE {
} D3DDEVTYPE;
typedef enum _D3DFILLMODE {
} D3DFILLMODE;
typedef enum _D3DFOGMODE {
D3DFOG_NONE = 0,
} D3DFOGMODE;
typedef enum _D3DFORMAT {
D3DFMT_UNKNOWN = 0,
} D3DFORMAT;
typedef enum _D3DLIGHTTYPE {
} D3DLIGHTTYPE;
typedef enum _D3DMATERIALCOLORSOURCE {
D3DMCS_MATERIAL = 0,
typedef enum _D3DMULTISAMPLE_TYPE {
D3DMULTISAMPLE_NONE = 0,
typedef enum _D3DORDERTYPE {
} D3DORDERTYPE;
typedef enum _D3DPATCHEDGESTYLE {
typedef enum _D3DPOOL {
D3DPOOL_DEFAULT = 0,
} D3DPOOL;
typedef enum _D3DPRIMITIVETYPE {
typedef enum _D3DRENDERSTATETYPE {
typedef enum _D3DRESOURCETYPE {
typedef enum _D3DSHADEMODE {
} D3DSHADEMODE;
typedef enum _D3DSTATEBLOCKTYPE {
typedef enum _D3DSTENCILOP {
} D3DSTENCILOP;
typedef enum _D3DSWAPEFFECT {
typedef enum _D3DTEXTUREADDRESS {
typedef enum _D3DTEXTUREFILTERTYPE {
D3DTEXF_NONE = 0,
typedef enum _D3DTEXTUREOP {
} D3DTEXTUREOP;
typedef enum _D3DTEXTURESTAGESTATETYPE {
typedef enum _D3DTEXTURETRANSFORMFLAGS {
D3DTTFF_DISABLE = 0,
typedef enum _D3DTRANSFORMSTATETYPE {
typedef enum _D3DVERTEXBLENDFLAGS {
D3DVBF_DISABLE = 0,
typedef enum _D3DZBUFFERTYPE {
D3DZB_FALSE = 0,
/*****************************************************************************
* Direct 3D v8 typedefs
*/
/*****************************************************************************
* Direct 3D v8 structures
*/
typedef struct _D3DADAPTER_IDENTIFIER8 {
typedef struct _D3DBOX {
} D3DBOX;
typedef struct _D3DCLIPSTATUS8 {
typedef struct _D3DCOLORVALUE {
float r;
float g;
float b;
float a;
typedef struct _D3DDEVICE_CREATION_PARAMETERS {
typedef struct _D3DDISPLAYMODE {
typedef struct _D3DGAMMARAMP {
} D3DGAMMARAMP;
typedef struct _D3DINDEXBUFFER_DESC {
#ifndef D3DVECTOR_DEFINED
typedef struct _D3DVECTOR {
float x;
float y;
float z;
} D3DVECTOR;
#define D3DVECTOR_DEFINED
#endif
typedef struct _D3DLIGHT8 {
float Range;
float Falloff;
float Attenuation0;
float Attenuation1;
float Attenuation2;
float Theta;
float Phi;
} D3DLIGHT8;
typedef struct _D3DLINEPATTERN {
typedef struct _D3DLOCKED_BOX {
void* pBits;
typedef struct _D3DLOCKED_RECT {
void* pBits;
typedef struct _D3DMATERIAL8 {
float Power;
} D3DMATERIAL8;
typedef struct _D3DMATRIX {
union {
struct {
float m[4][4];
} D3DMATRIX;
typedef struct _D3DPRESENT_PARAMETERS_ {
typedef struct _D3DRANGE {
} D3DRANGE;
typedef struct _D3DRASTER_STATUS {
typedef struct _D3DRECT {
} D3DRECT;
typedef struct _D3DRECTPATCH_INFO {
typedef struct _D3DSURFACE_DESC {
typedef struct _D3DTRIPATCH_INFO {
typedef struct _D3DVERTEXBUFFER_DESC {
typedef struct _D3DVIEWPORT8 {
DWORD X;
DWORD Y;
float MinZ;
float MaxZ;
} D3DVIEWPORT8;
typedef struct _D3DVOLUME_DESC {
#endif /* __WINE_D3D8TYPES_H */