/*
* Copyright (C) 2002-2003 Jason Edmeades
* Copyright (C) 2002-2003 Raphael Junqueira
* Copyright (C) 2005 Oliver Stieber
*
* 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_D3D9TYPES_H
#define __WINE_D3D9TYPES_H
/*****************************************************************************
* Direct 3D v9 #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
/* MSDN has this in d3d9caps.h, but it should be here */
/* Constants used by D3DPRESENT_PARAMETERS. when creating a device or swapchain */
#define D3DPRESENTFLAG_DEVICECLIP 0x00000004 /* Clip the window blited into the client area 2k + xp only */
/****************************
* Vertex Shaders Declaration
*/
typedef enum _D3DDECLUSAGE {
} D3DDECLUSAGE;
typedef enum _D3DDECLMETHOD {
typedef enum _D3DDECLTYPE {
D3DDECLTYPE_FLOAT1 = 0,
/* VS 2.0 */
} D3DDECLTYPE;
typedef struct _D3DVERTEXELEMENT9 {
typedef enum _D3DQUERYTYPE {
} D3DQUERYTYPE;
(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 */
#define D3DSP_DCL_USAGE_SHIFT 0
typedef enum _D3DSAMPLER_TEXTURE_TYPE {
/** destination parameter modifiers (.xyzw) */
typedef enum _D3DSHADER_PARAM_DSTMOD_TYPE {
/** destination param */
/** destination/source reg type */
typedef enum _D3DSHADER_PARAM_REGISTER_TYPE {
D3DSPR_TEMP = 0,
typedef enum _D3DSHADER_MISCTYPE_OFFSETS {
D3DSMO_POSITION = 0,
typedef enum _D3DVS_RASTOUT_OFFSETS {
D3DSRO_POSITION = 0,
typedef enum _D3DVS_ADDRESSMODE_TYPE {
typedef enum _D3DSHADER_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 _D3DDEGREETYPE {
typedef enum _D3DDEVTYPE {
} D3DDEVTYPE;
typedef enum _D3DFILLMODE {
} D3DFILLMODE;
typedef enum _D3DFOGMODE {
D3DFOG_NONE = 0,
} D3DFOGMODE;
typedef enum _D3DFORMAT {
D3DFMT_UNKNOWN = 0,
/* Floating point formats */
/* IEEE formats */
} D3DFORMAT;
typedef enum _D3DLIGHTTYPE {
} D3DLIGHTTYPE;
typedef enum _D3DMATERIALCOLORSOURCE {
D3DMCS_MATERIAL = 0,
typedef enum _D3DMULTISAMPLE_TYPE {
D3DMULTISAMPLE_NONE = 0,
#if 0
typedef enum _D3DORDERTYPE {
D3DORDER_LINEAR = 1,
D3DORDER_QUADRATIC = 2,
D3DORDER_CUBIC = 3,
D3DORDER_QUINTIC = 5,
D3DORDER_FORCE_DWORD = 0x7fffffff
} D3DORDERTYPE;
#endif
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,
typedef enum _D3DSAMPLERSTATETYPE {
/*****************************************************************************
* Direct 3D v9 typedefs
*/
#ifndef D3DCOLOR_DEFINED
#define D3DCOLOR_DEFINED
#endif
/*****************************************************************************
* Direct 3D v9 structures
*/
typedef struct _D3DADAPTER_IDENTIFIER9 {
typedef struct _D3DBOX {
} D3DBOX;
typedef struct _D3DCLIPSTATUS9 {
#ifndef D3DCOLORVALUE_DEFINED
typedef struct _D3DCOLORVALUE {
float r;
float g;
float b;
float a;
#define D3DCOLORVALUE_DEFINED
#endif
typedef struct _D3DDEVICE_CREATION_PARAMETERS {
typedef struct _D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
float MaxBandwidthUtilized;
float VertexRateUtilizedPercent;
float FillRateUtilizedPercent;
typedef struct _D3DDEVINFO_D3D9CACHEUTILIZATION {
float TextureCacheHitRate;
typedef struct _D3DDEVINFO_D3D9INTERFACETIMINGS {
typedef struct _D3DDEVINFO_D3D9PIPELINETIMINGS {
float VertexProcessingTimePercent;
float PixelProcessingTimePercent;
float GPUIdleTimePercent;
typedef struct _D3DDEVINFO_D3D9STAGETIMINGS {
float MemoryProcessingPercent;
float ComputationProcessingPercent;
/* Vertex cache optimization hints. */
typedef struct D3DDEVINFO_VCACHE {
/* Must be a 4 char code FOURCC (e.g. CACH) */
/* 0 to get the longest strips, 1 vertex cache */
/* Cache size to use (only valid if OptMethod==1) */
/* internal for deciding when to restart strips, non user modifyable (only valid if OptMethod==1) */
typedef struct D3DRESOURCESTATS {
typedef struct _D3DDEVINFO_D3DRESOURCEMANAGER {
typedef struct _D3DDEVINFO_D3DVERTEXSTATS {
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 _D3DLIGHT9 {
float Range;
float Falloff;
float Attenuation0;
float Attenuation1;
float Attenuation2;
float Theta;
float Phi;
} D3DLIGHT9;
typedef struct _D3DLINEPATTERN {
typedef struct _D3DLOCKED_BOX {
void* pBits;
typedef struct _D3DLOCKED_RECT {
void* pBits;
typedef struct _D3DMATERIAL9 {
float Power;
} D3DMATERIAL9;
#ifndef D3DMATRIX_DEFINED
typedef struct _D3DMATRIX {
union {
struct {
float m[4][4];
} D3DMATRIX;
#define D3DMATRIX_DEFINED
#endif
typedef struct _D3DPRESENT_PARAMETERS_ {
typedef struct _D3DRANGE {
} D3DRANGE;
typedef struct _D3DRASTER_STATUS {
#ifndef D3DRECT_DEFINED
typedef struct _D3DRECT {
} D3DRECT;
#define D3DRECT_DEFINED
#endif
typedef struct _D3DRECTPATCH_INFO {
typedef struct _D3DSURFACE_DESC {
typedef struct _D3DTRIPATCH_INFO {
typedef struct _D3DVERTEXBUFFER_DESC {
typedef struct _D3DVIEWPORT9 {
DWORD X;
DWORD Y;
float MinZ;
float MaxZ;
} D3DVIEWPORT9;
typedef struct _D3DVOLUME_DESC {
/* Parts added with d3d9ex */
#if !defined(D3D_DISABLE_9EX)
typedef enum D3DSCANLINEORDERING
{
typedef struct D3DDISPLAYMODEFILTER
{
typedef struct D3DDISPLAYMODEEX
{
typedef enum D3DDISPLAYROTATION
{
typedef enum _D3DCOMPOSERECTSOP{
#endif /* D3D_DISABLE_9EX */
typedef enum _D3DSHADER_COMPARISON
{
D3DSPC_RESERVED0 = 0,
#endif /* __WINE_D3D9TYPES_H */