Added a stubbed out version of query to d3d9 and wined3d.
Update the d3d9 headers and creates wined3d types where d3d9 and d3d8
are incompatible.
diff --git a/dlls/d3d9/d3d9_private.h b/dlls/d3d9/d3d9_private.h
index 21610c9..288a350 100644
--- a/dlls/d3d9/d3d9_private.h
+++ b/dlls/d3d9/d3d9_private.h
@@ -2,7 +2,8 @@
* Direct3D 9 private include file
*
* Copyright 2002-2003 Jason Edmeades
- * Raphael Junqueira
+ * Copyright 2002-2003 Raphael Junqueira
+ * Copyright 2005 Oliver Stieber
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -83,7 +84,7 @@
#define MAX_LEVELS 256
/* Other useful values */
-#define HIGHEST_RENDER_STATE 174
+#define HIGHEST_RENDER_STATE D3DRS_BLENDOPALPHA
#define HIGHEST_TEXTURE_STATE 29
#define HIGHEST_TRANSFORMSTATE 512
#define D3DSBT_RECORDED 0xfffffffe
@@ -108,7 +109,6 @@
typedef struct IDirect3DVertexShader9Impl IDirect3DVertexShader9Impl;
typedef struct IDirect3DPixelShader9Impl IDirect3DPixelShader9Impl;
typedef struct IDirect3DVertexDeclaration9Impl IDirect3DVertexDeclaration9Impl;
-typedef struct IDirect3DQuery9Impl IDirect3DQuery9Impl;
#define D3DCOLOR_R(dw) (((float) (((dw) >> 16) & 0xFF)) / 255.0f)
@@ -1108,26 +1108,15 @@
/*****************************************************************************
* IDirect3DPixelShader implementation structure
*/
-struct IDirect3DQuery9Impl {
+typedef struct IDirect3DQuery9Impl {
/* IUnknown fields */
IDirect3DQuery9Vtbl *lpVtbl;
- DWORD ref;
+ DWORD ref;
- /* IDirect3DQuery9 fields */
- IDirect3DDevice9Impl* Device;
-};
+ /* IDirect3DQuery9 fields */
+ IWineD3DQuery *wineD3DQuery;
+} IDirect3DQuery9Impl;
-/* IUnknown: */
-extern HRESULT WINAPI IDirect3DQuery9Impl_QueryInterface(LPDIRECT3DQUERY9 iface, REFIID riid, LPVOID* ppobj);
-extern ULONG WINAPI IDirect3DQuery9Impl_AddRef(LPDIRECT3DQUERY9 iface);
-extern ULONG WINAPI IDirect3DQuery9Impl_Release(LPDIRECT3DQUERY9 iface);
-
-/* IDirect3DQuery9: */
-extern HRESULT WINAPI IDirect3DQuery9Impl_GetDevice(LPDIRECT3DQUERY9 iface, IDirect3DDevice9** ppDevice);
-extern D3DQUERYTYPE WINAPI IDirect3DQuery9Impl_GetType(LPDIRECT3DQUERY9 iface);
-extern DWORD WINAPI IDirect3DQuery9Impl_GetDataSize(LPDIRECT3DQUERY9 iface);
-extern HRESULT WINAPI IDirect3DQuery9Impl_Issue(LPDIRECT3DQUERY9 iface, DWORD dwIssueFlags);
-extern HRESULT WINAPI IDirect3DQuery9Impl_GetData(LPDIRECT3DQUERY9 iface, void* pData, DWORD dwSize, DWORD dwGetDataFlags);
/* Callbacks */
extern HRESULT WINAPI D3D9CB_CreateSurface(IUnknown *device, UINT Width, UINT Height,
diff --git a/dlls/d3d9/query.c b/dlls/d3d9/query.c
index 8b8f12d..e8af3f3 100644
--- a/dlls/d3d9/query.c
+++ b/dlls/d3d9/query.c
@@ -2,7 +2,8 @@
* IDirect3DQuery9 implementation
*
* Copyright 2002-2003 Raphael Junqueira
- * Jason Edmeades
+ * Copyright 2002-2003 Jason Edmeades
+ * Copyright 2005 Oliver Stieber
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -22,15 +23,16 @@
#include "config.h"
#include "d3d9_private.h"
-WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+WINE_DEFAULT_DEBUG_CHANNEL(d3d9);
/* IDirect3DQuery9 IUnknown parts follow: */
HRESULT WINAPI IDirect3DQuery9Impl_QueryInterface(LPDIRECT3DQUERY9 iface, REFIID riid, LPVOID* ppobj) {
IDirect3DQuery9Impl *This = (IDirect3DQuery9Impl *)iface;
+ TRACE("(%p) Relay\n", This);
if (IsEqualGUID(riid, &IID_IUnknown)
|| IsEqualGUID(riid, &IID_IDirect3DQuery9)) {
- IDirect3DQuery9Impl_AddRef(iface);
+ IUnknown_AddRef(iface);
*ppobj = This;
return D3D_OK;
}
@@ -44,7 +46,6 @@
ULONG ref = InterlockedIncrement(&This->ref);
TRACE("(%p) : AddRef from %ld\n", This, ref - 1);
-
return ref;
}
@@ -63,34 +64,43 @@
/* IDirect3DQuery9 Interface follow: */
HRESULT WINAPI IDirect3DQuery9Impl_GetDevice(LPDIRECT3DQUERY9 iface, IDirect3DDevice9** ppDevice) {
IDirect3DQuery9Impl *This = (IDirect3DQuery9Impl *)iface;
- TRACE("(%p) : returning %p\n", This, This->Device);
- *ppDevice = (LPDIRECT3DDEVICE9) This->Device;
- IDirect3DDevice9Impl_AddRef(*ppDevice);
- return D3D_OK;
+ IWineD3DDevice* pDevice;
+ HRESULT hr;
+
+ TRACE("(%p) Relay\n", This);
+
+ hr = IWineD3DQuery_GetDevice(This->wineD3DQuery, &pDevice);
+ if(hr != D3D_OK){
+ *ppDevice = NULL;
+ }else{
+ hr = IWineD3DDevice_GetParent(pDevice, (IUnknown **)ppDevice);
+ IWineD3DDevice_Release(pDevice);
+ }
+ return hr;
}
D3DQUERYTYPE WINAPI IDirect3DQuery9Impl_GetType(LPDIRECT3DQUERY9 iface) {
IDirect3DQuery9Impl *This = (IDirect3DQuery9Impl *)iface;
- FIXME("(%p) : stub\n", This);
- return 0;
+ TRACE("(%p) Relay\n", This);
+ return IWineD3DQuery_GetType(This->wineD3DQuery);
}
DWORD WINAPI IDirect3DQuery9Impl_GetDataSize(LPDIRECT3DQUERY9 iface) {
IDirect3DQuery9Impl *This = (IDirect3DQuery9Impl *)iface;
- FIXME("(%p) : stub\n", This);
- return 0;
+ TRACE("(%p) Relay\n", This);
+ return IWineD3DQuery_GetDataSize(This->wineD3DQuery);
}
HRESULT WINAPI IDirect3DQuery9Impl_Issue(LPDIRECT3DQUERY9 iface, DWORD dwIssueFlags) {
IDirect3DQuery9Impl *This = (IDirect3DQuery9Impl *)iface;
- FIXME("(%p) : stub\n", This);
- return D3D_OK;
+ TRACE("(%p) Relay\n", This);
+ return IWineD3DQuery_Issue(This->wineD3DQuery, dwIssueFlags);
}
HRESULT WINAPI IDirect3DQuery9Impl_GetData(LPDIRECT3DQUERY9 iface, void* pData, DWORD dwSize, DWORD dwGetDataFlags) {
IDirect3DQuery9Impl *This = (IDirect3DQuery9Impl *)iface;
- FIXME("(%p) : stub\n", This);
- return D3D_OK;
+ TRACE("(%p) Relay\n", This);
+ return IWineD3DQuery_GetData(This->wineD3DQuery, pData, dwSize, dwGetDataFlags);
}
@@ -109,12 +119,11 @@
/* IDirect3DDevice9 IDirect3DQuery9 Methods follow: */
HRESULT WINAPI IDirect3DDevice9Impl_CreateQuery(LPDIRECT3DDEVICE9 iface, D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) {
-#if 0
IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface;
-#endif
IDirect3DQuery9Impl *object = NULL;
HRESULT hr = D3D_OK;
-
+
+ TRACE("(%p) Relay\n", This);
if (NULL == ppQuery) {
return D3DERR_INVALIDCALL;
}
@@ -128,8 +137,7 @@
object->lpVtbl = &Direct3DQuery9_Vtbl;
object->ref = 1;
-#if 0
- hr = IWineD3DDevice_CreateQuery(This->WineD3DDevice, 9, pVertexElements, &(object->wineD3DQuery));
+ hr = IWineD3DDevice_CreateQuery(This->WineD3DDevice, Type, &(object->wineD3DQuery), (IUnknown*)object);
if (FAILED(hr)) {
/* free up object */
@@ -139,6 +147,6 @@
} else {
*ppQuery = (LPDIRECT3DQUERY9) object;
}
-#endif
+ TRACE("(%p) : returning %p \n", This, *ppQuery);
return hr;
}
diff --git a/dlls/wined3d/Makefile.in b/dlls/wined3d/Makefile.in
index bdfbf6f..2f6bcdb 100644
--- a/dlls/wined3d/Makefile.in
+++ b/dlls/wined3d/Makefile.in
@@ -14,6 +14,7 @@
directx.c \
drawprim.c \
indexbuffer.c \
+ query.c \
resource.c \
stateblock.c \
surface.c \
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index e4814ba..c1f8386 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -217,7 +217,7 @@
/* Note the D3DRS value applies to all textures, but GL has one
* per texture, so apply it now ready to be used!
*/
- D3DCOLORTOGLFLOAT4(This->stateBlock->renderState[D3DRS_TEXTUREFACTOR], col);
+ D3DCOLORTOGLFLOAT4(This->stateBlock->renderState[WINED3DRS_TEXTUREFACTOR], col);
glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, &col[0]);
checkGLcall("glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR, color);");
@@ -433,12 +433,12 @@
* it is based around 4x4 pixel blocks it requires padding, so allocate enough
* space!
*********************************/
- if (Format == D3DFMT_DXT1) {
+ if (Format == WINED3DFMT_DXT1) {
/* DXT1 is half byte per pixel */
object->currentDesc.Size = ((max(Width,4) * object->bytesPerPixel) * max(Height,4)) / 2;
- } else if (Format == D3DFMT_DXT2 || Format == D3DFMT_DXT3 ||
- Format == D3DFMT_DXT4 || Format == D3DFMT_DXT5) {
+ } else if (Format == WINED3DFMT_DXT2 || Format == WINED3DFMT_DXT3 ||
+ Format == WINED3DFMT_DXT4 || Format == WINED3DFMT_DXT5) {
object->currentDesc.Size = ((max(Width,4) * object->bytesPerPixel) * max(Height,4));
} else {
object->currentDesc.Size = (Width * object->bytesPerPixel) * Height;
@@ -491,7 +491,7 @@
object->locked = FALSE;
- object->lockable = (D3DFMT_D16_LOCKABLE == Format) ? TRUE : Lockable;
+ object->lockable = (WINED3DFMT_D16_LOCKABLE == Format) ? TRUE : Lockable;
/* TODO: memory management */
object->allocatedMemory = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,object->currentDesc.Size);
if(object->allocatedMemory == NULL ) {
@@ -505,7 +505,7 @@
IWineD3DSurface_CleanDirtyRect(*ppSurface);
TRACE("(%p) : w(%d) h(%d) fmt(%d,%s) lockable(%d) surf@%p, surfmem@%p, %d bytes\n",
This, Width, Height, Format, debug_d3dformat(Format),
- (D3DFMT_D16_LOCKABLE == Format), *ppSurface, object->allocatedMemory, object->currentDesc.Size);
+ (WINED3DFMT_D16_LOCKABLE == Format), *ppSurface, object->allocatedMemory, object->currentDesc.Size);
return D3D_OK;
}
@@ -754,50 +754,42 @@
return D3D_OK;
}
-HRESULT WINAPI IWineD3DDeviceImpl_CreateQuery(IWineD3DDevice *iface, D3DQUERYTYPE Type, void** ppQuery, IUnknown* parent){
+HRESULT WINAPI IWineD3DDeviceImpl_CreateQuery(IWineD3DDevice *iface, WINED3DQUERYTYPE Type, IWineD3DQuery **ppQuery, IUnknown* parent){
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
-
+ IWineD3DQueryImpl *object; /*NOTE: impl ref allowed since this is a create function */
+
if(NULL == ppQuery){
/* Just a check to see if we support this type of query */
HRESULT hr = D3DERR_NOTAVAILABLE;
-#if 0 /* TODO: query support */
/* Lie and say everything is good (we can return ok fake data from a stub) */
switch(Type){
- case D3DQUERYTYPE_VCACHE:
- case D3DQUERYTYPE_RESOURCEMANAGER:
- case D3DQUERYTYPE_VERTEXSTATS:
- case D3DQUERYTYPE_EVENT:
- case D3DQUERYTYPE_OCCLUSION:
- case D3DQUERYTYPE_TIMESTAMP:
- case D3DQUERYTYPE_TIMESTAMPDISJOINT:
- case D3DQUERYTYPE_TIMESTAMPFREQ:
- case D3DQUERYTYPE_PIPELINETIMINGS:
- case D3DQUERYTYPE_INTERFACETIMINGS:
- case D3DQUERYTYPE_VERTEXTIMINGS:
- case D3DQUERYTYPE_PIXELTIMINGS:
- case D3DQUERYTYPE_BANDWIDTHTIMINGS:
- case D3DQUERYTYPE_CACHEUTILIZATION:
+ case WINED3DQUERYTYPE_VCACHE:
+ case WINED3DQUERYTYPE_RESOURCEMANAGER:
+ case WINED3DQUERYTYPE_VERTEXSTATS:
+ case WINED3DQUERYTYPE_EVENT:
+ case WINED3DQUERYTYPE_OCCLUSION:
+ case WINED3DQUERYTYPE_TIMESTAMP:
+ case WINED3DQUERYTYPE_TIMESTAMPDISJOINT:
+ case WINED3DQUERYTYPE_TIMESTAMPFREQ:
+ case WINED3DQUERYTYPE_PIPELINETIMINGS:
+ case WINED3DQUERYTYPE_INTERFACETIMINGS:
+ case WINED3DQUERYTYPE_VERTEXTIMINGS:
+ case WINED3DQUERYTYPE_PIXELTIMINGS:
+ case WINED3DQUERYTYPE_BANDWIDTHTIMINGS:
+ case WINED3DQUERYTYPE_CACHEUTILIZATION:
hr = D3D_OK;
break;
default:
FIXME("(%p) Unhandled query type %d\n",This , Type);
}
-#endif
FIXME("(%p) : Stub request for query type %d returned %ld\n", This, Type, hr);
return hr;
}
-#if 0 /* TODO: query support */
- IWineD3DQueryImpl *object; /*NOTE: impl ref allowed since this is a create function */
-
D3DCREATEOBJECTINSTANCE(object, Query)
object->type = Type;
object->extendedData = 0;
TRACE("(%p) : Created Query %p\n", This, object);
-#else
- *ppQuery = NULL;
- FIXME("(%p) : Stub\n",This);
-#endif
return D3D_OK;
}
@@ -1726,7 +1718,7 @@
checkGLcall("glMaterialfv");
/* Only change material color if specular is enabled, otherwise it is set to black */
- if (This->stateBlock->renderState[D3DRS_SPECULARENABLE]) {
+ if (This->stateBlock->renderState[WINED3DRS_SPECULARENABLE]) {
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, (float*) &This->updateStateBlock->material.Specular);
checkGLcall("glMaterialfv");
} else {
@@ -1865,18 +1857,18 @@
ENTER_GL();
switch (State) {
- case D3DRS_FILLMODE :
+ case WINED3DRS_FILLMODE :
switch ((D3DFILLMODE) Value) {
case D3DFILL_POINT : glPolygonMode(GL_FRONT_AND_BACK, GL_POINT); break;
case D3DFILL_WIREFRAME : glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); break;
case D3DFILL_SOLID : glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); break;
default:
- FIXME("Unrecognized D3DRS_FILLMODE value %ld\n", Value);
+ FIXME("Unrecognized WINED3DRS_FILLMODE value %ld\n", Value);
}
checkGLcall("glPolygonMode (fillmode)");
break;
- case D3DRS_LIGHTING :
+ case WINED3DRS_LIGHTING :
if (Value) {
glEnable(GL_LIGHTING);
checkGLcall("glEnable GL_LIGHTING");
@@ -1886,7 +1878,7 @@
}
break;
- case D3DRS_ZENABLE :
+ case WINED3DRS_ZENABLE :
switch ((D3DZBUFFERTYPE) Value) {
case D3DZB_FALSE:
glDisable(GL_DEPTH_TEST);
@@ -1906,7 +1898,7 @@
}
break;
- case D3DRS_CULLMODE :
+ case WINED3DRS_CULLMODE :
/* If we are culling "back faces with clockwise vertices" then
set front faces to be counter clockwise and enable culling
@@ -1945,7 +1937,7 @@
}
break;
- case D3DRS_SHADEMODE :
+ case WINED3DRS_SHADEMODE :
switch ((D3DSHADEMODE) Value) {
case D3DSHADE_FLAT:
glShadeModel(GL_FLAT);
@@ -1965,7 +1957,7 @@
}
break;
- case D3DRS_DITHERENABLE :
+ case WINED3DRS_DITHERENABLE :
if (Value) {
glEnable(GL_DITHER);
checkGLcall("glEnable GL_DITHER");
@@ -1975,7 +1967,7 @@
}
break;
- case D3DRS_ZWRITEENABLE :
+ case WINED3DRS_ZWRITEENABLE :
if (Value) {
glDepthMask(1);
checkGLcall("glDepthMask");
@@ -1985,7 +1977,7 @@
}
break;
- case D3DRS_ZFUNC :
+ case WINED3DRS_ZFUNC :
{
int glParm = GL_LESS;
@@ -2006,7 +1998,7 @@
}
break;
- case D3DRS_AMBIENT :
+ case WINED3DRS_AMBIENT :
{
float col[4];
D3DCOLORTOGLFLOAT4(Value, col);
@@ -2017,7 +2009,7 @@
}
break;
- case D3DRS_ALPHABLENDENABLE :
+ case WINED3DRS_ALPHABLENDENABLE :
if (Value) {
glEnable(GL_BLEND);
checkGLcall("glEnable GL_BLEND");
@@ -2027,8 +2019,8 @@
};
break;
- case D3DRS_SRCBLEND :
- case D3DRS_DESTBLEND :
+ case WINED3DRS_SRCBLEND :
+ case WINED3DRS_DESTBLEND :
{
int newVal = GL_ZERO;
switch (Value) {
@@ -2057,8 +2049,8 @@
FIXME("Unrecognized src/dest blend value %ld (%d)\n", Value, State);
}
- if (State == D3DRS_SRCBLEND) This->srcBlend = newVal;
- if (State == D3DRS_DESTBLEND) This->dstBlend = newVal;
+ if (State == WINED3DRS_SRCBLEND) This->srcBlend = newVal;
+ if (State == WINED3DRS_DESTBLEND) This->dstBlend = newVal;
TRACE("glBlendFunc src=%x, dst=%x\n", This->srcBlend, This->dstBlend);
glBlendFunc(This->srcBlend, This->dstBlend);
@@ -2066,7 +2058,7 @@
}
break;
- case D3DRS_ALPHATESTENABLE :
+ case WINED3DRS_ALPHATESTENABLE :
if (Value) {
glEnable(GL_ALPHA_TEST);
checkGLcall("glEnable GL_ALPHA_TEST");
@@ -2076,10 +2068,10 @@
}
break;
- case D3DRS_ALPHAFUNC :
+ case WINED3DRS_ALPHAFUNC :
{
int glParm = GL_LESS;
- float ref = ((float) This->stateBlock->renderState[D3DRS_ALPHAREF]) / 255.0f;
+ float ref = ((float) This->stateBlock->renderState[WINED3DRS_ALPHAREF]) / 255.0f;
switch ((D3DCMPFUNC) Value) {
case D3DCMP_NEVER: glParm = GL_NEVER; break;
@@ -2100,7 +2092,7 @@
}
break;
- case D3DRS_ALPHAREF :
+ case WINED3DRS_ALPHAREF :
{
int glParm = This->alphafunc;
float ref = 1.0f;
@@ -2112,20 +2104,20 @@
}
break;
- case D3DRS_CLIPPLANEENABLE :
- case D3DRS_CLIPPING :
+ case WINED3DRS_CLIPPLANEENABLE :
+ case WINED3DRS_CLIPPING :
{
/* Ensure we only do the changed clip planes */
DWORD enable = 0xFFFFFFFF;
DWORD disable = 0x00000000;
/* If enabling / disabling all */
- if (State == D3DRS_CLIPPING) {
+ if (State == WINED3DRS_CLIPPING) {
if (Value) {
- enable = This->stateBlock->renderState[D3DRS_CLIPPLANEENABLE];
+ enable = This->stateBlock->renderState[WINED3DRS_CLIPPLANEENABLE];
disable = 0x00;
} else {
- disable = This->stateBlock->renderState[D3DRS_CLIPPLANEENABLE];
+ disable = This->stateBlock->renderState[WINED3DRS_CLIPPLANEENABLE];
enable = 0x00;
}
} else {
@@ -2158,7 +2150,7 @@
}
break;
- case D3DRS_BLENDOP :
+ case WINED3DRS_BLENDOP :
{
int glParm = GL_FUNC_ADD;
@@ -2177,7 +2169,7 @@
}
break;
- case D3DRS_TEXTUREFACTOR :
+ case WINED3DRS_TEXTUREFACTOR :
{
unsigned int i;
@@ -2206,7 +2198,7 @@
}
break;
- case D3DRS_SPECULARENABLE :
+ case WINED3DRS_SPECULARENABLE :
{
/* Originally this used glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL,GL_SEPARATE_SPECULAR_COLOR)
and (GL_LIGHT_MODEL_COLOR_CONTROL,GL_SINGLE_COLOR) to swap between enabled/disabled
@@ -2245,7 +2237,7 @@
}
break;
- case D3DRS_STENCILENABLE :
+ case WINED3DRS_STENCILENABLE :
if (Value) {
glEnable(GL_STENCIL_TEST);
checkGLcall("glEnable GL_STENCIL_TEST");
@@ -2255,11 +2247,11 @@
}
break;
- case D3DRS_STENCILFUNC :
+ case WINED3DRS_STENCILFUNC :
{
int glParm = GL_ALWAYS;
- int ref = This->stateBlock->renderState[D3DRS_STENCILREF];
- GLuint mask = This->stateBlock->renderState[D3DRS_STENCILMASK];
+ int ref = This->stateBlock->renderState[WINED3DRS_STENCILREF];
+ GLuint mask = This->stateBlock->renderState[WINED3DRS_STENCILMASK];
switch ((D3DCMPFUNC) Value) {
case D3DCMP_NEVER: glParm=GL_NEVER; break;
@@ -2280,11 +2272,11 @@
}
break;
- case D3DRS_STENCILREF :
+ case WINED3DRS_STENCILREF :
{
int glParm = This->stencilfunc;
int ref = 0;
- GLuint mask = This->stateBlock->renderState[D3DRS_STENCILMASK];
+ GLuint mask = This->stateBlock->renderState[WINED3DRS_STENCILMASK];
ref = Value;
TRACE("glStencilFunc with Parm=%x, ref=%d, mask=%x\n", glParm, ref, mask);
@@ -2293,10 +2285,10 @@
}
break;
- case D3DRS_STENCILMASK :
+ case WINED3DRS_STENCILMASK :
{
int glParm = This->stencilfunc;
- int ref = This->stateBlock->renderState[D3DRS_STENCILREF];
+ int ref = This->stateBlock->renderState[WINED3DRS_STENCILREF];
GLuint mask = Value;
TRACE("glStencilFunc with Parm=%x, ref=%d, mask=%x\n", glParm, ref, mask);
@@ -2305,7 +2297,7 @@
}
break;
- case D3DRS_STENCILFAIL :
+ case WINED3DRS_STENCILFAIL :
{
GLenum fail ;
GLenum zpass ;
@@ -2322,7 +2314,7 @@
checkGLcall("glStencilOp(fail, zfail, zpass);");
}
break;
- case D3DRS_STENCILZFAIL :
+ case WINED3DRS_STENCILZFAIL :
{
GLenum fail ;
GLenum zpass ;
@@ -2339,7 +2331,7 @@
checkGLcall("glStencilOp(fail, zfail, zpass);");
}
break;
- case D3DRS_STENCILPASS :
+ case WINED3DRS_STENCILPASS :
{
GLenum fail ;
GLenum zpass ;
@@ -2357,7 +2349,7 @@
}
break;
- case D3DRS_STENCILWRITEMASK :
+ case WINED3DRS_STENCILWRITEMASK :
{
glStencilMask(Value);
TRACE("glStencilMask(%lu)\n", Value);
@@ -2365,9 +2357,9 @@
}
break;
- case D3DRS_FOGENABLE :
+ case WINED3DRS_FOGENABLE :
{
- if (Value/* && This->stateBlock->renderState[D3DRS_FOGTABLEMODE] != D3DFOG_NONE*/) {
+ if (Value/* && This->stateBlock->renderState[WINED3DRS_FOGTABLEMODE] != D3DFOG_NONE*/) {
glEnable(GL_FOG);
checkGLcall("glEnable GL_FOG");
} else {
@@ -2377,7 +2369,7 @@
}
break;
- case D3DRS_RANGEFOGENABLE :
+ case WINED3DRS_RANGEFOGENABLE :
{
if (Value) {
TRACE("Enabled RANGEFOG");
@@ -2387,7 +2379,7 @@
}
break;
- case D3DRS_FOGCOLOR :
+ case WINED3DRS_FOGCOLOR :
{
float col[4];
D3DCOLORTOGLFLOAT4(Value, col);
@@ -2397,7 +2389,7 @@
}
break;
- case D3DRS_FOGTABLEMODE :
+ case WINED3DRS_FOGTABLEMODE :
{
glHint(GL_FOG_HINT, GL_NICEST);
switch (Value) {
@@ -2406,7 +2398,7 @@
case D3DFOG_EXP2: glFogi(GL_FOG_MODE, GL_EXP2); checkGLcall("glFogi(GL_FOG_MODE, GL_EXP2"); break;
case D3DFOG_LINEAR: glFogi(GL_FOG_MODE, GL_LINEAR); checkGLcall("glFogi(GL_FOG_MODE, GL_LINEAR"); break;
default:
- FIXME("Unsupported Value(%lu) for D3DRS_FOGTABLEMODE!\n", Value);
+ FIXME("Unsupported Value(%lu) for WINED3DRS_FOGTABLEMODE!\n", Value);
}
if (GL_SUPPORT(NV_FOG_DISTANCE)) {
glFogi(GL_FOG_DISTANCE_MODE_NV, GL_EYE_PLANE_ABSOLUTE_NV);
@@ -2414,7 +2406,7 @@
}
break;
- case D3DRS_FOGVERTEXMODE :
+ case WINED3DRS_FOGVERTEXMODE :
{
glHint(GL_FOG_HINT, GL_FASTEST);
switch (Value) {
@@ -2423,15 +2415,15 @@
case D3DFOG_EXP2: glFogi(GL_FOG_MODE, GL_EXP2); checkGLcall("glFogi(GL_FOG_MODE, GL_EXP2"); break;
case D3DFOG_LINEAR: glFogi(GL_FOG_MODE, GL_LINEAR); checkGLcall("glFogi(GL_FOG_MODE, GL_LINEAR"); break;
default:
- FIXME("Unsupported Value(%lu) for D3DRS_FOGTABLEMODE!\n", Value);
+ FIXME("Unsupported Value(%lu) for WINED3DRS_FOGTABLEMODE!\n", Value);
}
if (GL_SUPPORT(NV_FOG_DISTANCE)) {
- glFogi(GL_FOG_DISTANCE_MODE_NV, This->stateBlock->renderState[D3DRS_RANGEFOGENABLE] ? GL_EYE_RADIAL_NV : GL_EYE_PLANE_ABSOLUTE_NV);
+ glFogi(GL_FOG_DISTANCE_MODE_NV, This->stateBlock->renderState[WINED3DRS_RANGEFOGENABLE] ? GL_EYE_RADIAL_NV : GL_EYE_PLANE_ABSOLUTE_NV);
}
}
break;
- case D3DRS_FOGSTART :
+ case WINED3DRS_FOGSTART :
{
tmpvalue.d = Value;
glFogfv(GL_FOG_START, &tmpvalue.f);
@@ -2440,7 +2432,7 @@
}
break;
- case D3DRS_FOGEND :
+ case WINED3DRS_FOGEND :
{
tmpvalue.d = Value;
glFogfv(GL_FOG_END, &tmpvalue.f);
@@ -2449,7 +2441,7 @@
}
break;
- case D3DRS_FOGDENSITY :
+ case WINED3DRS_FOGDENSITY :
{
tmpvalue.d = Value;
glFogfv(GL_FOG_DENSITY, &tmpvalue.f);
@@ -2457,14 +2449,14 @@
}
break;
- case D3DRS_VERTEXBLEND :
+ case WINED3DRS_VERTEXBLEND :
{
This->updateStateBlock->vertex_blend = (D3DVERTEXBLENDFLAGS) Value;
TRACE("Vertex Blending state to %ld\n", Value);
}
break;
- case D3DRS_TWEENFACTOR :
+ case WINED3DRS_TWEENFACTOR :
{
tmpvalue.d = Value;
This->updateStateBlock->tween_factor = tmpvalue.f;
@@ -2472,38 +2464,38 @@
}
break;
- case D3DRS_INDEXEDVERTEXBLENDENABLE :
+ case WINED3DRS_INDEXEDVERTEXBLENDENABLE :
{
TRACE("Indexed Vertex Blend Enable to %ul\n", (BOOL) Value);
}
break;
- case D3DRS_COLORVERTEX :
- case D3DRS_DIFFUSEMATERIALSOURCE :
- case D3DRS_SPECULARMATERIALSOURCE :
- case D3DRS_AMBIENTMATERIALSOURCE :
- case D3DRS_EMISSIVEMATERIALSOURCE :
+ case WINED3DRS_COLORVERTEX :
+ case WINED3DRS_DIFFUSEMATERIALSOURCE :
+ case WINED3DRS_SPECULARMATERIALSOURCE :
+ case WINED3DRS_AMBIENTMATERIALSOURCE :
+ case WINED3DRS_EMISSIVEMATERIALSOURCE :
{
GLenum Parm = GL_AMBIENT_AND_DIFFUSE;
- if (This->stateBlock->renderState[D3DRS_COLORVERTEX]) {
+ if (This->stateBlock->renderState[WINED3DRS_COLORVERTEX]) {
TRACE("diff %ld, amb %ld, emis %ld, spec %ld\n",
- This->stateBlock->renderState[D3DRS_DIFFUSEMATERIALSOURCE],
- This->stateBlock->renderState[D3DRS_AMBIENTMATERIALSOURCE],
- This->stateBlock->renderState[D3DRS_EMISSIVEMATERIALSOURCE],
- This->stateBlock->renderState[D3DRS_SPECULARMATERIALSOURCE]);
+ This->stateBlock->renderState[WINED3DRS_DIFFUSEMATERIALSOURCE],
+ This->stateBlock->renderState[WINED3DRS_AMBIENTMATERIALSOURCE],
+ This->stateBlock->renderState[WINED3DRS_EMISSIVEMATERIALSOURCE],
+ This->stateBlock->renderState[WINED3DRS_SPECULARMATERIALSOURCE]);
- if (This->stateBlock->renderState[D3DRS_DIFFUSEMATERIALSOURCE] == D3DMCS_COLOR1) {
- if (This->stateBlock->renderState[D3DRS_AMBIENTMATERIALSOURCE] == D3DMCS_COLOR1) {
+ if (This->stateBlock->renderState[WINED3DRS_DIFFUSEMATERIALSOURCE] == D3DMCS_COLOR1) {
+ if (This->stateBlock->renderState[WINED3DRS_AMBIENTMATERIALSOURCE] == D3DMCS_COLOR1) {
Parm = GL_AMBIENT_AND_DIFFUSE;
} else {
Parm = GL_DIFFUSE;
}
- } else if (This->stateBlock->renderState[D3DRS_AMBIENTMATERIALSOURCE] == D3DMCS_COLOR1) {
+ } else if (This->stateBlock->renderState[WINED3DRS_AMBIENTMATERIALSOURCE] == D3DMCS_COLOR1) {
Parm = GL_AMBIENT;
- } else if (This->stateBlock->renderState[D3DRS_EMISSIVEMATERIALSOURCE] == D3DMCS_COLOR1) {
+ } else if (This->stateBlock->renderState[WINED3DRS_EMISSIVEMATERIALSOURCE] == D3DMCS_COLOR1) {
Parm = GL_EMISSION;
- } else if (This->stateBlock->renderState[D3DRS_SPECULARMATERIALSOURCE] == D3DMCS_COLOR1) {
+ } else if (This->stateBlock->renderState[WINED3DRS_SPECULARMATERIALSOURCE] == D3DMCS_COLOR1) {
Parm = GL_SPECULAR;
} else {
Parm = -1;
@@ -2522,7 +2514,7 @@
}
break;
- case D3DRS_LINEPATTERN :
+ case WINED3DRS_LINEPATTERN :
{
union {
DWORD d;
@@ -2544,7 +2536,7 @@
}
break;
- case D3DRS_ZBIAS :
+ case WINED3DRS_ZBIAS :
{
if (Value) {
tmpvalue.d = Value;
@@ -2568,7 +2560,7 @@
}
break;
- case D3DRS_NORMALIZENORMALS :
+ case WINED3DRS_NORMALIZENORMALS :
if (Value) {
glEnable(GL_NORMALIZE);
checkGLcall("glEnable(GL_NORMALIZE);");
@@ -2578,50 +2570,50 @@
}
break;
- case D3DRS_POINTSIZE :
+ case WINED3DRS_POINTSIZE :
tmpvalue.d = Value;
TRACE("Set point size to %f\n", tmpvalue.f);
glPointSize(tmpvalue.f);
checkGLcall("glPointSize(...);");
break;
- case D3DRS_POINTSIZE_MIN :
+ case WINED3DRS_POINTSIZE_MIN :
if (GL_SUPPORT(EXT_POINT_PARAMETERS)) {
tmpvalue.d = Value;
GL_EXTCALL(glPointParameterfEXT)(GL_POINT_SIZE_MIN_EXT, tmpvalue.f);
checkGLcall("glPointParameterfEXT(...);");
} else {
- FIXME("D3DRS_POINTSIZE_MIN not supported on this opengl\n");
+ FIXME("WINED3DRS_POINTSIZE_MIN not supported on this opengl\n");
}
break;
- case D3DRS_POINTSIZE_MAX :
+ case WINED3DRS_POINTSIZE_MAX :
if (GL_SUPPORT(EXT_POINT_PARAMETERS)) {
tmpvalue.d = Value;
GL_EXTCALL(glPointParameterfEXT)(GL_POINT_SIZE_MAX_EXT, tmpvalue.f);
checkGLcall("glPointParameterfEXT(...);");
} else {
- FIXME("D3DRS_POINTSIZE_MAX not supported on this opengl\n");
+ FIXME("WINED3DRS_POINTSIZE_MAX not supported on this opengl\n");
}
break;
- case D3DRS_POINTSCALE_A :
- case D3DRS_POINTSCALE_B :
- case D3DRS_POINTSCALE_C :
- case D3DRS_POINTSCALEENABLE :
+ case WINED3DRS_POINTSCALE_A :
+ case WINED3DRS_POINTSCALE_B :
+ case WINED3DRS_POINTSCALE_C :
+ case WINED3DRS_POINTSCALEENABLE :
{
/* If enabled, supply the parameters, otherwise fall back to defaults */
- if (This->stateBlock->renderState[D3DRS_POINTSCALEENABLE]) {
+ if (This->stateBlock->renderState[WINED3DRS_POINTSCALEENABLE]) {
GLfloat att[3] = {1.0f, 0.0f, 0.0f};
- att[0] = *((float*)&This->stateBlock->renderState[D3DRS_POINTSCALE_A]);
- att[1] = *((float*)&This->stateBlock->renderState[D3DRS_POINTSCALE_B]);
- att[2] = *((float*)&This->stateBlock->renderState[D3DRS_POINTSCALE_C]);
+ att[0] = *((float*)&This->stateBlock->renderState[WINED3DRS_POINTSCALE_A]);
+ att[1] = *((float*)&This->stateBlock->renderState[WINED3DRS_POINTSCALE_B]);
+ att[2] = *((float*)&This->stateBlock->renderState[WINED3DRS_POINTSCALE_C]);
if (GL_SUPPORT(EXT_POINT_PARAMETERS)) {
GL_EXTCALL(glPointParameterfvEXT)(GL_DISTANCE_ATTENUATION_EXT, att);
checkGLcall("glPointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, ...);");
} else {
- TRACE("D3DRS_POINTSCALEENABLE not supported on this opengl\n");
+ TRACE("WINED3DRS_POINTSCALEENABLE not supported on this opengl\n");
}
} else {
GLfloat att[3] = {1.0f, 0.0f, 0.0f};
@@ -2629,13 +2621,13 @@
GL_EXTCALL(glPointParameterfvEXT)(GL_DISTANCE_ATTENUATION_EXT, att);
checkGLcall("glPointParameterfvEXT(GL_DISTANCE_ATTENUATION_EXT, ...);");
} else {
- TRACE("D3DRS_POINTSCALEENABLE not supported, but not on either\n");
+ TRACE("WINED3DRS_POINTSCALEENABLE not supported, but not on either\n");
}
}
break;
}
- case D3DRS_COLORWRITEENABLE :
+ case WINED3DRS_COLORWRITEENABLE :
{
TRACE("Color mask: r(%d) g(%d) b(%d) a(%d)\n",
Value & D3DCOLORWRITEENABLE_RED ? 1 : 0,
@@ -2650,7 +2642,7 @@
}
break;
- case D3DRS_LOCALVIEWER :
+ case WINED3DRS_LOCALVIEWER :
{
GLint state = (Value) ? 1 : 0;
TRACE("Local Viewer Enable to %ul\n", (BOOL) Value);
@@ -2658,7 +2650,7 @@
}
break;
- case D3DRS_LASTPIXEL :
+ case WINED3DRS_LASTPIXEL :
{
if (Value) {
TRACE("Last Pixel Drawing Enabled\n");
@@ -2668,7 +2660,7 @@
}
break;
- case D3DRS_SOFTWAREVERTEXPROCESSING :
+ case WINED3DRS_SOFTWAREVERTEXPROCESSING :
{
if (Value) {
TRACE("Software Processing Enabled\n");
@@ -2679,30 +2671,30 @@
break;
/** not supported */
- case D3DRS_ZVISIBLE :
+ case WINED3DRS_ZVISIBLE :
{
LEAVE_GL();
return D3DERR_INVALIDCALL;
}
/* Unhandled yet...! */
- case D3DRS_EDGEANTIALIAS :
- case D3DRS_WRAP0 :
- case D3DRS_WRAP1 :
- case D3DRS_WRAP2 :
- case D3DRS_WRAP3 :
- case D3DRS_WRAP4 :
- case D3DRS_WRAP5 :
- case D3DRS_WRAP6 :
- case D3DRS_WRAP7 :
- case D3DRS_POINTSPRITEENABLE :
- case D3DRS_MULTISAMPLEANTIALIAS :
- case D3DRS_MULTISAMPLEMASK :
- case D3DRS_PATCHEDGESTYLE :
- case D3DRS_PATCHSEGMENTS :
- case D3DRS_DEBUGMONITORTOKEN :
- case D3DRS_POSITIONORDER :
- case D3DRS_NORMALORDER :
+ case WINED3DRS_EDGEANTIALIAS :
+ case WINED3DRS_WRAP0 :
+ case WINED3DRS_WRAP1 :
+ case WINED3DRS_WRAP2 :
+ case WINED3DRS_WRAP3 :
+ case WINED3DRS_WRAP4 :
+ case WINED3DRS_WRAP5 :
+ case WINED3DRS_WRAP6 :
+ case WINED3DRS_WRAP7 :
+ case WINED3DRS_POINTSPRITEENABLE :
+ case WINED3DRS_MULTISAMPLEANTIALIAS :
+ case WINED3DRS_MULTISAMPLEMASK :
+ case WINED3DRS_PATCHEDGESTYLE :
+ case WINED3DRS_PATCHSEGMENTS :
+ case WINED3DRS_DEBUGMONITORTOKEN :
+ case WINED3DRS_POSITIONORDER :
+ case WINED3DRS_NORMALORDER :
/*Put back later: FIXME("(%p)->(%d,%ld) not handled yet\n", This, State, Value); */
FIXME("(%p)->(%d,%ld) not handled yet\n", This, State, Value);
break;
@@ -3284,7 +3276,7 @@
determine the texture wrapping mode.
eg. SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION | 1 );
means use the vertex position (camera-space) as the input texture coordinates
- for this texture stage, and the wrap mode set in the D3DRS_WRAP1 render
+ for this texture stage, and the wrap mode set in the WINED3DRS_WRAP1 render
state. We do not (yet) support the D3DRENDERSTATE_WRAPx values, nor tie them up
to the TEXCOORDINDEX value */
@@ -3660,13 +3652,13 @@
DeleteDC(hdc);
switch (bpp) {
- case 8: pMode->Format = D3DFMT_R8G8B8; break;
- case 16: pMode->Format = D3DFMT_R5G6B5; break;
- case 24: /*pMode->Format = D3DFMT_R8G8B8; break; */
- case 32: pMode->Format = D3DFMT_A8R8G8B8; break;
+ case 8: pMode->Format = WINED3DFMT_R8G8B8; break;
+ case 16: pMode->Format = WINED3DFMT_R5G6B5; break;
+ case 24: /*pMode->Format = WINED3DFMT_R8G8B8; break; */
+ case 32: pMode->Format = WINED3DFMT_A8R8G8B8; break;
default:
FIXME("Unrecognized display mode format\n");
- pMode->Format = D3DFMT_UNKNOWN;
+ pMode->Format = WINED3DFMT_UNKNOWN;
}
FIXME("(%p) : returning w(%d) h(%d) rr(%d) fmt(%u,%s)\n", This, pMode->Width, pMode->Height, pMode->RefreshRate,
@@ -3931,7 +3923,7 @@
/* Restore the old values (why..?) */
if (Flags & D3DCLEAR_STENCIL) {
glClearStencil(old_stencil_clear_value);
- glStencilMask(This->stateBlock->renderState[D3DRS_STENCILWRITEMASK]);
+ glStencilMask(This->stateBlock->renderState[WINED3DRS_STENCILWRITEMASK]);
}
if (Flags & D3DCLEAR_ZBUFFER) {
glDepthMask(old_ztest);
@@ -3942,10 +3934,10 @@
old_color_clear_value[1],
old_color_clear_value[2],
old_color_clear_value[3]);
- glColorMask(This->stateBlock->renderState[D3DRS_COLORWRITEENABLE] & D3DCOLORWRITEENABLE_RED ? GL_TRUE : GL_FALSE,
- This->stateBlock->renderState[D3DRS_COLORWRITEENABLE] & D3DCOLORWRITEENABLE_GREEN ? GL_TRUE : GL_FALSE,
- This->stateBlock->renderState[D3DRS_COLORWRITEENABLE] & D3DCOLORWRITEENABLE_BLUE ? GL_TRUE : GL_FALSE,
- This->stateBlock->renderState[D3DRS_COLORWRITEENABLE] & D3DCOLORWRITEENABLE_ALPHA ? GL_TRUE : GL_FALSE);
+ glColorMask(This->stateBlock->renderState[WINED3DRS_COLORWRITEENABLE] & D3DCOLORWRITEENABLE_RED ? GL_TRUE : GL_FALSE,
+ This->stateBlock->renderState[WINED3DRS_COLORWRITEENABLE] & D3DCOLORWRITEENABLE_GREEN ? GL_TRUE : GL_FALSE,
+ This->stateBlock->renderState[WINED3DRS_COLORWRITEENABLE] & D3DCOLORWRITEENABLE_BLUE ? GL_TRUE : GL_FALSE,
+ This->stateBlock->renderState[WINED3DRS_COLORWRITEENABLE] & D3DCOLORWRITEENABLE_ALPHA ? GL_TRUE : GL_FALSE);
}
glDisable(GL_SCISSOR_TEST);
@@ -3991,7 +3983,7 @@
minIndex, NumVertices, startIndex, baseVIndex, primCount);
IWineD3DIndexBuffer_GetDesc(pIB, &IdxBufDsc);
- if (IdxBufDsc.Format == D3DFMT_INDEX16) {
+ if (IdxBufDsc.Format == WINED3DFMT_INDEX16) {
idxStride = 2;
} else {
idxStride = 4;
@@ -4043,7 +4035,7 @@
if (This->stateBlock->stream_source[0] != NULL) IWineD3DVertexBuffer_Release(This->stateBlock->stream_source[0]);
- if (IndexDataFormat == D3DFMT_INDEX16) {
+ if (IndexDataFormat == WINED3DFMT_INDEX16) {
idxStride = 2;
} else {
idxStride = 4;
@@ -4268,7 +4260,7 @@
TRACE("(%p) : Spot Pos(%u,%u)\n", This, XHotSpot, YHotSpot);
- if (D3DFMT_A8R8G8B8 != pSur->currentDesc.Format) {
+ if (WINED3DFMT_A8R8G8B8 != pSur->currentDesc.Format) {
ERR("(%p) : surface(%p) have a invalid format\n", This, pCursorBitmap);
return D3DERR_INVALIDCALL;
}
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index 441ea5e..fc70065 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -35,15 +35,6 @@
#undef GL_VERSION_1_4 /* To be fixed, caused by mesa headers */
#endif
-/* Useful internal structure, holding place for 4 floats */
-typedef struct _D3DVECTOR_4 {
- float x;
- float y;
- float z;
- float w;
-} D3DVECTOR_4;
-
-
/* Returns bits for what is expected from the fixed function pipeline, and whether
a vertex shader will be in use. Note the fvf bits returned may be split over
multiple streams only if the vertex shader was created, otherwise it all relates
@@ -519,7 +510,7 @@
BOOL isDiffuse, float *dRGBA, /* 1st colors */
BOOL isSpecular, float *sRGB, /* 2ndry colors */
BOOL isPtSize, float ptSize, /* pointSize */
- D3DVECTOR_4 *texcoords, int *numcoords) /* texture info */
+ WINED3DVECTOR_4 *texcoords, int *numcoords) /* texture info */
{
unsigned int textureNo;
float s, t, r, q;
diff --git a/dlls/wined3d/query.c b/dlls/wined3d/query.c
new file mode 100644
index 0000000..9819529
--- /dev/null
+++ b/dlls/wined3d/query.c
@@ -0,0 +1,337 @@
+/*
+ * IWineD3DQuery implementation
+ *
+ * Copyright 2005 Oliver Stieber
+ *
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+
+#include "config.h"
+#include "wined3d_private.h"
+
+/*
+http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/programmingguide/advancedtopics/Queries.asp
+*/
+
+WINE_DEFAULT_DEBUG_CHANNEL(d3d);
+
+/* *******************************************
+ IWineD3DQuery IUnknown parts follow
+ ******************************************* */
+HRESULT WINAPI IWineD3DQueryImpl_QueryInterface(IWineD3DQuery *iface, REFIID riid, LPVOID *ppobj)
+{
+ IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
+ TRACE("(%p)->(%s,%p)\n",This,debugstr_guid(riid),ppobj);
+ if (IsEqualGUID(riid, &IID_IUnknown)
+ || IsEqualGUID(riid, &IID_IWineD3DQuery)) {
+ IUnknown_AddRef(iface);
+ *ppobj = This;
+ return D3D_OK;
+ }
+ return E_NOINTERFACE;
+}
+
+ULONG WINAPI IWineD3DQueryImpl_AddRef(IWineD3DQuery *iface) {
+ IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
+ TRACE("(%p) : AddRef increasing from %ld\n", This, This->ref);
+ return InterlockedIncrement(&This->ref);
+}
+
+ULONG WINAPI IWineD3DQueryImpl_Release(IWineD3DQuery *iface) {
+ IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
+ ULONG ref;
+ TRACE("(%p) : Releasing from %ld\n", This, This->ref);
+ ref = InterlockedDecrement(&This->ref);
+ if (ref == 0) {
+ if(This->extendedData != NULL){
+ HeapFree(GetProcessHeap(), 0, This->extendedData);
+ }
+ HeapFree(GetProcessHeap(), 0, This);
+ }
+ return ref;
+}
+
+/* *******************************************
+ IWineD3DQuery IWineD3DQuery parts follow
+ ******************************************* */
+HRESULT WINAPI IWineD3DQueryImpl_GetParent(IWineD3DQuery *iface, IUnknown** parent){
+ IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
+
+ *parent= (IUnknown*) parent;
+ IUnknown_AddRef(*parent);
+ TRACE("(%p) : returning %p\n", This, *parent);
+ return D3D_OK;
+}
+
+HRESULT WINAPI IWineD3DQueryImpl_GetDevice(IWineD3DQuery* iface, IWineD3DDevice **pDevice){
+ IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
+ IWineD3DDevice_AddRef((IWineD3DDevice *)This->wineD3DDevice);
+ *pDevice = (IWineD3DDevice *)This->wineD3DDevice;
+ TRACE("(%p) returning %p\n", This, *pDevice);
+ return D3D_OK;
+}
+
+
+HRESULT WINAPI IWineD3DQueryImpl_GetData(IWineD3DQuery* iface, void* pData, DWORD dwSize, DWORD dwGetDataFlags){
+ IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
+ if(dwSize == 0){
+ /*you can use this method to poll the resource for the query status*/
+ /*We return success(S_OK) if we support a feature, and faikure(S_FALSE) if we don't, just return success and fluff it for now*/
+ return S_OK;
+ }else{
+ }
+
+ switch (This->type){
+
+ case WINED3DQUERYTYPE_VCACHE:
+ {
+
+ WINED3DDEVINFO_VCACHE *data = (WINED3DDEVINFO_VCACHE *)pData;
+ data->Pattern = MAKEFOURCC('C','A','C','H');
+ data->OptMethod = 0; /*0 get longest strips, 1 optimize vertex cache*/
+ data->CacheSize = 0; /*cache size, only required if OptMethod == 1*/
+ data->MagicNumber = 0; /*only required if OptMethod == 1 (used internally)*/
+
+ }
+ break;
+ case WINED3DQUERYTYPE_RESOURCEMANAGER:
+ {
+ WINED3DDEVINFO_RESOURCEMANAGER *data = (WINED3DDEVINFO_RESOURCEMANAGER *)pData;
+ int i;
+ for(i = 0; i < D3DRTYPECOUNT; i++){
+ /*I'm setting the default values to 1 so as to reduce the risk of a div/0 in the caller*/
+ /* isTextureResident could be used to get some of this infomration */
+ data->stats[i].bThrashing = FALSE;
+ data->stats[i].ApproxBytesDownloaded = 1;
+ data->stats[i].NumEvicts = 1;
+ data->stats[i].NumVidCreates = 1;
+ data->stats[i].LastPri = 1;
+ data->stats[i].NumUsed = 1;
+ data->stats[i].NumUsedInVidMem = 1;
+ data->stats[i].WorkingSet = 1;
+ data->stats[i].WorkingSetBytes = 1;
+ data->stats[i].TotalManaged = 1;
+ data->stats[i].TotalBytes = 1;
+ }
+
+ }
+ break;
+ case WINED3DQUERYTYPE_VERTEXSTATS:
+ {
+ WINED3DDEVINFO_VERTEXSTATS *data = (WINED3DDEVINFO_VERTEXSTATS *)pData;
+ data->NumRenderedTriangles = 1;
+ data->NumExtraClippingTriangles = 1;
+
+ }
+ break;
+ case WINED3DQUERYTYPE_EVENT:
+ {
+ BOOL* data = pData;
+ *data = TRUE; /*Don't know what this is supposed to be*/
+ }
+ break;
+ case WINED3DQUERYTYPE_OCCLUSION:
+ {
+ DWORD* data = pData;
+ *data = 1;
+ /* TODO: opengl occlusion queries
+ http://www.gris.uni-tuebingen.de/~bartz/Publications/paper/hww98.pdf
+ http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
+ http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
+ */
+ }
+ break;
+ case WINED3DQUERYTYPE_TIMESTAMP:
+ {
+ UINT64* data = pData;
+ *data = 1; /*Don't know what this is supposed to be*/
+ }
+ break;
+ case WINED3DQUERYTYPE_TIMESTAMPDISJOINT:
+ {
+ BOOL* data = pData;
+ *data = FALSE; /*Don't know what this is supposed to be*/
+ }
+ break;
+ case WINED3DQUERYTYPE_TIMESTAMPFREQ:
+ {
+ UINT64* data = pData;
+ *data = 1; /*Don't know what this is supposed to be*/
+ }
+ break;
+ case WINED3DQUERYTYPE_PIPELINETIMINGS:
+ {
+ WINED3DDEVINFO_PIPELINETIMINGS *data = (WINED3DDEVINFO_PIPELINETIMINGS *)pData;
+
+ data->VertexProcessingTimePercent = 1.0f;
+ data->PixelProcessingTimePercent = 1.0f;
+ data->OtherGPUProcessingTimePercent = 97.0f;
+ data->GPUIdleTimePercent = 1.0f;
+ }
+ break;
+ case WINED3DQUERYTYPE_INTERFACETIMINGS:
+ {
+ WINED3DDEVINFO_INTERFACETIMINGS *data = (WINED3DDEVINFO_INTERFACETIMINGS *)pData;
+
+ data->WaitingForGPUToUseApplicationResourceTimePercent = 1.0f;
+ data->WaitingForGPUToAcceptMoreCommandsTimePercent = 1.0f;
+ data->WaitingForGPUToStayWithinLatencyTimePercent = 1.0f;
+ data->WaitingForGPUExclusiveResourceTimePercent = 1.0f;
+ data->WaitingForGPUOtherTimePercent = 96.0f;
+ }
+
+ break;
+ case WINED3DQUERYTYPE_VERTEXTIMINGS:
+ {
+ WINED3DDEVINFO_STAGETIMINGS *data = (WINED3DDEVINFO_STAGETIMINGS *)pData;
+ data->MemoryProcessingPercent = 50.0f;
+ data->ComputationProcessingPercent = 50.0f;
+
+ }
+ break;
+ case WINED3DQUERYTYPE_PIXELTIMINGS:
+ {
+ WINED3DDEVINFO_STAGETIMINGS *data = (WINED3DDEVINFO_STAGETIMINGS *)pData;
+ data->MemoryProcessingPercent = 50.0f;
+ data->ComputationProcessingPercent = 50.0f;
+ }
+ break;
+ case WINED3DQUERYTYPE_BANDWIDTHTIMINGS:
+ {
+ WINED3DDEVINFO_BANDWIDTHTIMINGS *data = (WINED3DDEVINFO_BANDWIDTHTIMINGS *)pData;
+ data->MaxBandwidthUtilized = 1.0f;
+ data->FrontEndUploadMemoryUtilizedPercent = 1.0f;
+ data->VertexRateUtilizedPercent = 1.0f;
+ data->TriangleSetupRateUtilizedPercent = 1.0f;
+ data->FillRateUtilizedPercent = 97.0f;
+ }
+ break;
+ case WINED3DQUERYTYPE_CACHEUTILIZATION:
+ {
+ WINED3DDEVINFO_CACHEUTILIZATION *data = (WINED3DDEVINFO_CACHEUTILIZATION *)pData;
+
+ data->TextureCacheHitRate = 1.0f;
+ data->PostTransformVertexCacheHitRate = 1.0f;
+ }
+
+
+ break;
+ default:
+ FIXME("(%p) Unhandled query type %d\n",This , This->type);
+
+ };
+
+ /*dwGetDataFlags = 0 || D3DGETDATA_FLUSH
+ D3DGETDATA_FLUSH may return D3DERR_DEVICELOST if the device is lost
+ */
+ FIXME("(%p) : stub \n", This);
+ return S_OK; /* S_OK if the query data is available*/
+}
+
+
+DWORD WINAPI IWineD3DQueryImpl_GetDataSize(IWineD3DQuery* iface){
+ IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
+ int dataSize = 0;
+ FIXME("(%p) : stub \n", This);
+ switch(This->type){
+ case WINED3DQUERYTYPE_VCACHE:
+ dataSize = sizeof(WINED3DDEVINFO_VCACHE);
+ break;
+ case WINED3DQUERYTYPE_RESOURCEMANAGER:
+ dataSize = sizeof(WINED3DDEVINFO_RESOURCEMANAGER);
+ break;
+ case WINED3DQUERYTYPE_VERTEXSTATS:
+ dataSize = sizeof(WINED3DDEVINFO_VERTEXSTATS);
+ break;
+ case WINED3DQUERYTYPE_EVENT:
+ dataSize = sizeof(BOOL);
+ break;
+ case WINED3DQUERYTYPE_OCCLUSION:
+ dataSize = sizeof(DWORD);
+ /*
+ http://www.gris.uni-tuebingen.de/~bartz/Publications/paper/hww98.pdf
+ http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
+ http://oss.sgi.com/projects/ogl-sample/registry/ARB/occlusion_query.txt
+ */
+ break;
+ case WINED3DQUERYTYPE_TIMESTAMP:
+ dataSize = sizeof(UINT64);
+ break;
+ case WINED3DQUERYTYPE_TIMESTAMPDISJOINT:
+ dataSize = sizeof(BOOL);
+ break;
+ case WINED3DQUERYTYPE_TIMESTAMPFREQ:
+ dataSize = sizeof(UINT64);
+ break;
+ case WINED3DQUERYTYPE_PIPELINETIMINGS:
+ dataSize = sizeof(WINED3DDEVINFO_PIPELINETIMINGS);
+ break;
+ case WINED3DQUERYTYPE_INTERFACETIMINGS:
+ dataSize = sizeof(WINED3DDEVINFO_INTERFACETIMINGS);
+ break;
+ case WINED3DQUERYTYPE_VERTEXTIMINGS:
+ dataSize = sizeof(WINED3DDEVINFO_STAGETIMINGS);
+ break;
+ case WINED3DQUERYTYPE_PIXELTIMINGS:
+ dataSize = sizeof(WINED3DDEVINFO_STAGETIMINGS);
+ break;
+ case WINED3DQUERYTYPE_BANDWIDTHTIMINGS:
+ dataSize = sizeof(WINED3DQUERYTYPE_BANDWIDTHTIMINGS);
+ break;
+ case WINED3DQUERYTYPE_CACHEUTILIZATION:
+ dataSize = sizeof(WINED3DDEVINFO_CACHEUTILIZATION);
+ break;
+ default:
+ FIXME("(%p) Unhandled query type %d\n",This , This->type);
+ dataSize = 0;
+ }
+ return dataSize;
+}
+
+
+WINED3DQUERYTYPE WINAPI IWineD3DQueryImpl_GetType(IWineD3DQuery* iface){
+ IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
+ return This->type;
+}
+
+
+HRESULT WINAPI IWineD3DQueryImpl_Issue(IWineD3DQuery* iface, DWORD dwIssueFlags){
+ IWineD3DQueryImpl *This = (IWineD3DQueryImpl *)iface;
+ FIXME("(%p) : stub \n", This);
+ return D3D_OK; /* can be D3DERR_INVALIDCALL. */
+}
+
+
+/**********************************************************
+ * IWineD3DQuery VTbl follows
+ **********************************************************/
+
+IWineD3DQueryVtbl IWineD3DQuery_Vtbl =
+{
+ /*** IUnknown methods ***/
+ IWineD3DQueryImpl_QueryInterface,
+ IWineD3DQueryImpl_AddRef,
+ IWineD3DQueryImpl_Release,
+ /*** IWineD3Dquery methods ***/
+ IWineD3DQueryImpl_GetParent,
+ IWineD3DQueryImpl_GetDevice,
+ IWineD3DQueryImpl_GetData,
+ IWineD3DQueryImpl_GetDataSize,
+ IWineD3DQueryImpl_GetType,
+ IWineD3DQueryImpl_Issue
+};
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 93c9b24..f18bdc9 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -101,102 +101,102 @@
/* Render states: */
if (ThisDevice->presentParms.EnableAutoDepthStencil) {
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ZENABLE, D3DZB_TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ZENABLE, D3DZB_TRUE);
} else {
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ZENABLE, D3DZB_FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ZENABLE, D3DZB_FALSE);
}
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_FILLMODE, D3DFILL_SOLID);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_FILLMODE, D3DFILL_SOLID);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_SHADEMODE, D3DSHADE_GOURAUD);
lp.lp.wRepeatFactor = 0; lp.lp.wLinePattern = 0;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_LINEPATTERN, lp.d);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ZWRITEENABLE, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ALPHATESTENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_LASTPIXEL, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_SRCBLEND, D3DBLEND_ONE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_DESTBLEND, D3DBLEND_ZERO);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_CULLMODE, D3DCULL_CCW);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ALPHAFUNC, D3DCMP_ALWAYS);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ALPHAREF, 0xff); /*??*/
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_DITHERENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ALPHABLENDENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_FOGENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_SPECULARENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ZVISIBLE, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_FOGCOLOR, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_FOGTABLEMODE, D3DFOG_NONE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_LINEPATTERN, lp.d);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ZWRITEENABLE, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ALPHATESTENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_LASTPIXEL, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_SRCBLEND, D3DBLEND_ONE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_DESTBLEND, D3DBLEND_ZERO);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_CULLMODE, D3DCULL_CCW);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ZFUNC, D3DCMP_LESSEQUAL);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ALPHAFUNC, D3DCMP_ALWAYS);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ALPHAREF, 0xff); /*??*/
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_DITHERENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ALPHABLENDENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_FOGENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_SPECULARENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ZVISIBLE, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_FOGCOLOR, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_FOGTABLEMODE, D3DFOG_NONE);
tmpfloat.f = 0.0f;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_FOGSTART, tmpfloat.d);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_FOGSTART, tmpfloat.d);
tmpfloat.f = 1.0f;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_FOGEND, tmpfloat.d);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_FOGEND, tmpfloat.d);
tmpfloat.f = 1.0f;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_FOGDENSITY, tmpfloat.d);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_EDGEANTIALIAS, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_ZBIAS, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_RANGEFOGENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_STENCILENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_STENCILFAIL, D3DSTENCILOP_KEEP);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_STENCILZFAIL, D3DSTENCILOP_KEEP);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_STENCILPASS, D3DSTENCILOP_KEEP);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_FOGDENSITY, tmpfloat.d);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_EDGEANTIALIAS, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_ZBIAS, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_RANGEFOGENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_STENCILENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_STENCILFAIL, D3DSTENCILOP_KEEP);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_STENCILZFAIL, D3DSTENCILOP_KEEP);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_STENCILPASS, D3DSTENCILOP_KEEP);
/* Setting stencil func also uses values for stencil ref/mask, so manually set defaults
* so only a single call performed (and ensure defaults initialized before making that call)
*
- * IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_STENCILREF, 0);
- * IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_STENCILMASK, 0xFFFFFFFF);
+ * IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_STENCILREF, 0);
+ * IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_STENCILMASK, 0xFFFFFFFF);
*/
- This->renderState[D3DRS_STENCILREF] = 0;
- This->renderState[D3DRS_STENCILMASK] = 0xFFFFFFFF;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_STENCILFUNC, D3DCMP_ALWAYS);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_STENCILWRITEMASK, 0xFFFFFFFF);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_TEXTUREFACTOR, 0xFFFFFFFF);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_WRAP0, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_WRAP1, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_WRAP2, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_WRAP3, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_WRAP4, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_WRAP5, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_WRAP6, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_WRAP7, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_CLIPPING, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_LIGHTING, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_AMBIENT, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_FOGVERTEXMODE, D3DFOG_NONE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_COLORVERTEX, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_LOCALVIEWER, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_NORMALIZENORMALS, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_SPECULARMATERIALSOURCE, D3DMCS_COLOR2);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_AMBIENTMATERIALSOURCE, D3DMCS_COLOR2);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_EMISSIVEMATERIALSOURCE, D3DMCS_MATERIAL);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_VERTEXBLEND, D3DVBF_DISABLE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_CLIPPLANEENABLE, 0);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_SOFTWAREVERTEXPROCESSING, FALSE);
+ This->renderState[WINED3DRS_STENCILREF] = 0;
+ This->renderState[WINED3DRS_STENCILMASK] = 0xFFFFFFFF;
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_STENCILFUNC, D3DCMP_ALWAYS);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_STENCILWRITEMASK, 0xFFFFFFFF);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_TEXTUREFACTOR, 0xFFFFFFFF);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_WRAP0, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_WRAP1, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_WRAP2, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_WRAP3, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_WRAP4, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_WRAP5, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_WRAP6, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_WRAP7, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_CLIPPING, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_LIGHTING, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_AMBIENT, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_FOGVERTEXMODE, D3DFOG_NONE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_COLORVERTEX, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_LOCALVIEWER, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_NORMALIZENORMALS, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_SPECULARMATERIALSOURCE, D3DMCS_COLOR2);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_AMBIENTMATERIALSOURCE, D3DMCS_COLOR2);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_EMISSIVEMATERIALSOURCE, D3DMCS_MATERIAL);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_VERTEXBLEND, D3DVBF_DISABLE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_CLIPPLANEENABLE, 0);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_SOFTWAREVERTEXPROCESSING, FALSE);
tmpfloat.f = 1.0f;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_POINTSIZE, tmpfloat.d);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_POINTSIZE, tmpfloat.d);
tmpfloat.f = 0.0f;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_POINTSIZE_MIN, tmpfloat.d);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_POINTSPRITEENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_POINTSCALEENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_POINTSCALE_A, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_POINTSCALE_B, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_POINTSCALE_C, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_MULTISAMPLEANTIALIAS, TRUE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_MULTISAMPLEMASK, 0xFFFFFFFF);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_PATCHEDGESTYLE, D3DPATCHEDGE_DISCRETE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_POINTSIZE_MIN, tmpfloat.d);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_POINTSPRITEENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_POINTSCALEENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_POINTSCALE_A, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_POINTSCALE_B, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_POINTSCALE_C, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_MULTISAMPLEANTIALIAS, TRUE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_MULTISAMPLEMASK, 0xFFFFFFFF);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_PATCHEDGESTYLE, D3DPATCHEDGE_DISCRETE);
tmpfloat.f = 1.0f;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_PATCHSEGMENTS, tmpfloat.d);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_DEBUGMONITORTOKEN, D3DDMT_DISABLE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_PATCHSEGMENTS, tmpfloat.d);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_DEBUGMONITORTOKEN, D3DDMT_DISABLE);
tmpfloat.f = 64.0f;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_POINTSIZE_MAX, tmpfloat.d);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_INDEXEDVERTEXBLENDENABLE, FALSE);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_COLORWRITEENABLE, 0x0000000F);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_POINTSIZE_MAX, tmpfloat.d);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_INDEXEDVERTEXBLENDENABLE, FALSE);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_COLORWRITEENABLE, 0x0000000F);
tmpfloat.f = 0.0f;
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_TWEENFACTOR, tmpfloat.d);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_BLENDOP, D3DBLENDOP_ADD);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_POSITIONORDER, D3DORDER_CUBIC);
- IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, D3DRS_NORMALORDER, D3DORDER_LINEAR);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_TWEENFACTOR, tmpfloat.d);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_BLENDOP, D3DBLENDOP_ADD);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_POSITIONORDER, WINED3DDEGREE_CUBIC);
+ IWineD3DDevice_SetRenderState((IWineD3DDevice *)This->wineD3DDevice, WINED3DRS_NORMALORDER, WINED3DDEGREE_LINEAR);
/** clipping status */
This->clip_status.ClipUnion = 0;
diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index 89e71a2..835ecae 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -167,9 +167,9 @@
/* DXTn formats don't have exact pitches as they are to the new row of blocks,
where each block is 4x4 pixels, 8 bytes (dxt1) and 16 bytes (dxt3/5)
ie pitch = (width/4) * bytes per block */
- if (This->currentDesc.Format == D3DFMT_DXT1) /* DXT1 is 8 bytes per block */
+ if (This->currentDesc.Format == WINED3DFMT_DXT1) /* DXT1 is 8 bytes per block */
pLockedRect->Pitch = (This->currentDesc.Width/4) * 8;
- else if (This->currentDesc.Format == D3DFMT_DXT3 || This->currentDesc.Format == D3DFMT_DXT5) /* DXT3/5 is 16 bytes per block */
+ else if (This->currentDesc.Format == WINED3DFMT_DXT3 || This->currentDesc.Format == WINED3DFMT_DXT5) /* DXT3/5 is 16 bytes per block */
pLockedRect->Pitch = (This->currentDesc.Width/4) * 16;
else
pLockedRect->Pitch = This->bytesPerPixel * This->currentDesc.Width; /* Bytes / row */
@@ -184,7 +184,7 @@
} else {
TRACE("Lock Rect (%p) = l %ld, t %ld, r %ld, b %ld\n", pRect, pRect->left, pRect->top, pRect->right, pRect->bottom);
- if (This->currentDesc.Format == D3DFMT_DXT1) { /* DXT1 is half byte per pixel */
+ if (This->currentDesc.Format == WINED3DFMT_DXT1) { /* DXT1 is half byte per pixel */
pLockedRect->pBits = This->allocatedMemory + (pLockedRect->Pitch * pRect->top) + ((pRect->left * This->bytesPerPixel/2));
} else {
pLockedRect->pBits = This->allocatedMemory + (pLockedRect->Pitch * pRect->top) + (pRect->left * This->bytesPerPixel);
@@ -392,21 +392,21 @@
glRasterPos3i(This->lockedRect.left, This->lockedRect.top, 1);
vcheckGLcall("glRasterPos2f");
switch (This->currentDesc.Format) {
- case D3DFMT_R5G6B5:
+ case WINED3DFMT_R5G6B5:
{
glDrawPixels(This->lockedRect.right - This->lockedRect.left, (This->lockedRect.bottom - This->lockedRect.top)-1,
GL_RGB, GL_UNSIGNED_SHORT_5_6_5, This->allocatedMemory);
vcheckGLcall("glDrawPixels");
}
break;
- case D3DFMT_R8G8B8:
+ case WINED3DFMT_R8G8B8:
{
glDrawPixels(This->lockedRect.right - This->lockedRect.left, (This->lockedRect.bottom - This->lockedRect.top)-1,
GL_RGB, GL_UNSIGNED_BYTE, This->allocatedMemory);
vcheckGLcall("glDrawPixels");
}
break;
- case D3DFMT_A8R8G8B8:
+ case WINED3DFMT_A8R8G8B8:
{
glPixelStorei(GL_PACK_SWAP_BYTES, TRUE);
vcheckGLcall("glPixelStorei");
@@ -485,9 +485,9 @@
if (gl_level != 0)
FIXME("Surface in texture is only supported for level 0\n");
- else if (This->currentDesc.Format == D3DFMT_P8 || This->currentDesc.Format == D3DFMT_A8P8 ||
- This->currentDesc.Format == D3DFMT_DXT1 || This->currentDesc.Format == D3DFMT_DXT3 ||
- This->currentDesc.Format == D3DFMT_DXT5)
+ else if (This->currentDesc.Format == WINED3DFMT_P8 || This->currentDesc.Format == WINED3DFMT_A8P8 ||
+ This->currentDesc.Format == WINED3DFMT_DXT1 || This->currentDesc.Format == WINED3DFMT_DXT3 ||
+ This->currentDesc.Format == WINED3DFMT_DXT5)
FIXME("Format %d not supported\n", This->currentDesc.Format);
else {
glCopyTexImage2D(gl_target,
@@ -506,7 +506,7 @@
return D3D_OK;
}
- if ((This->currentDesc.Format == D3DFMT_P8 || This->currentDesc.Format == D3DFMT_A8P8) &&
+ if ((This->currentDesc.Format == WINED3DFMT_P8 || This->currentDesc.Format == WINED3DFMT_A8P8) &&
!GL_SUPPORT(EXT_PALETTED_TEXTURE)) {
/**
* wanted a paletted texture and not really support it in HW
@@ -523,7 +523,7 @@
*dst++ = pal[color].peRed;
*dst++ = pal[color].peGreen;
*dst++ = pal[color].peBlue;
- if (This->currentDesc.Format == D3DFMT_A8P8)
+ if (This->currentDesc.Format == WINED3DFMT_A8P8)
*dst++ = pal[color].peFlags;
else
*dst++ = 0xFF;
@@ -558,9 +558,9 @@
return D3D_OK;
}
- if (This->currentDesc.Format == D3DFMT_DXT1 ||
- This->currentDesc.Format == D3DFMT_DXT3 ||
- This->currentDesc.Format == D3DFMT_DXT5) {
+ if (This->currentDesc.Format == WINED3DFMT_DXT1 ||
+ This->currentDesc.Format == WINED3DFMT_DXT3 ||
+ This->currentDesc.Format == WINED3DFMT_DXT5) {
if (GL_SUPPORT(EXT_TEXTURE_COMPRESSION_S3TC)) {
TRACE("Calling glCompressedTexImage2D %x i=%d, intfmt=%x, w=%d, h=%d,0=%d, sz=%d, Mem=%p\n",
gl_target,
@@ -657,8 +657,8 @@
fprintf(f, "P6\n%u %u\n255\n", This->currentDesc.Width, This->currentDesc.Height);
switch (This->currentDesc.Format) {
- case D3DFMT_X8R8G8B8:
- case D3DFMT_A8R8G8B8:
+ case WINED3DFMT_X8R8G8B8:
+ case WINED3DFMT_A8R8G8B8:
{
DWORD color;
for (i = 0; i < This->currentDesc.Width * This->currentDesc.Height; i++) {
@@ -669,7 +669,7 @@
}
}
break;
- case D3DFMT_R8G8B8:
+ case WINED3DFMT_R8G8B8:
{
BYTE* color;
for (i = 0; i < This->currentDesc.Width * This->currentDesc.Height; i++) {
@@ -680,7 +680,7 @@
}
}
break;
- case D3DFMT_A1R5G5B5:
+ case WINED3DFMT_A1R5G5B5:
{
WORD color;
for (i = 0; i < This->currentDesc.Width * This->currentDesc.Height; i++) {
@@ -691,7 +691,7 @@
}
}
break;
- case D3DFMT_A4R4G4B4:
+ case WINED3DFMT_A4R4G4B4:
{
WORD color;
for (i = 0; i < This->currentDesc.Width * This->currentDesc.Height; i++) {
@@ -703,7 +703,7 @@
}
break;
- case D3DFMT_R5G6B5:
+ case WINED3DFMT_R5G6B5:
{
WORD color;
for (i = 0; i < This->currentDesc.Width * This->currentDesc.Height; i++) {
diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c
index b56f1db..7649949 100644
--- a/dlls/wined3d/utils.c
+++ b/dlls/wined3d/utils.c
@@ -31,46 +31,58 @@
const char* debug_d3dformat(D3DFORMAT fmt) {
switch (fmt) {
#define FMT_TO_STR(fmt) case fmt: return #fmt
- FMT_TO_STR(D3DFMT_UNKNOWN);
- FMT_TO_STR(D3DFMT_R8G8B8);
- FMT_TO_STR(D3DFMT_A8R8G8B8);
- FMT_TO_STR(D3DFMT_X8R8G8B8);
- FMT_TO_STR(D3DFMT_R5G6B5);
- FMT_TO_STR(D3DFMT_X1R5G5B5);
- FMT_TO_STR(D3DFMT_A1R5G5B5);
- FMT_TO_STR(D3DFMT_A4R4G4B4);
- FMT_TO_STR(D3DFMT_R3G3B2);
- FMT_TO_STR(D3DFMT_A8);
- FMT_TO_STR(D3DFMT_A8R3G3B2);
- FMT_TO_STR(D3DFMT_X4R4G4B4);
- FMT_TO_STR(D3DFMT_A8P8);
- FMT_TO_STR(D3DFMT_P8);
- FMT_TO_STR(D3DFMT_L8);
- FMT_TO_STR(D3DFMT_A8L8);
- FMT_TO_STR(D3DFMT_A4L4);
- FMT_TO_STR(D3DFMT_V8U8);
- FMT_TO_STR(D3DFMT_L6V5U5);
- FMT_TO_STR(D3DFMT_X8L8V8U8);
- FMT_TO_STR(D3DFMT_Q8W8V8U8);
- FMT_TO_STR(D3DFMT_V16U16);
- FMT_TO_STR(D3DFMT_W11V11U10);
- FMT_TO_STR(D3DFMT_UYVY);
- FMT_TO_STR(D3DFMT_YUY2);
- FMT_TO_STR(D3DFMT_DXT1);
- FMT_TO_STR(D3DFMT_DXT2);
- FMT_TO_STR(D3DFMT_DXT3);
- FMT_TO_STR(D3DFMT_DXT4);
- FMT_TO_STR(D3DFMT_DXT5);
- FMT_TO_STR(D3DFMT_D16_LOCKABLE);
- FMT_TO_STR(D3DFMT_D32);
- FMT_TO_STR(D3DFMT_D15S1);
- FMT_TO_STR(D3DFMT_D24S8);
- FMT_TO_STR(D3DFMT_D16);
- FMT_TO_STR(D3DFMT_D24X8);
- FMT_TO_STR(D3DFMT_D24X4S4);
- FMT_TO_STR(D3DFMT_VERTEXDATA);
- FMT_TO_STR(D3DFMT_INDEX16);
- FMT_TO_STR(D3DFMT_INDEX32);
+ FMT_TO_STR(WINED3DFMT_UNKNOWN);
+ FMT_TO_STR(WINED3DFMT_R8G8B8);
+ FMT_TO_STR(WINED3DFMT_A8R8G8B8);
+ FMT_TO_STR(WINED3DFMT_X8R8G8B8);
+ FMT_TO_STR(WINED3DFMT_R5G6B5);
+ FMT_TO_STR(WINED3DFMT_X1R5G5B5);
+ FMT_TO_STR(WINED3DFMT_A1R5G5B5);
+ FMT_TO_STR(WINED3DFMT_A4R4G4B4);
+ FMT_TO_STR(WINED3DFMT_R3G3B2);
+ FMT_TO_STR(WINED3DFMT_A8);
+ FMT_TO_STR(WINED3DFMT_A8R3G3B2);
+ FMT_TO_STR(WINED3DFMT_X4R4G4B4);
+ FMT_TO_STR(WINED3DFMT_G16R16);
+ FMT_TO_STR(WINED3DFMT_A2R10G10B10);
+ FMT_TO_STR(WINED3DFMT_A16B16G16R16);
+ FMT_TO_STR(WINED3DFMT_A8P8);
+ FMT_TO_STR(WINED3DFMT_P8);
+ FMT_TO_STR(WINED3DFMT_L8);
+ FMT_TO_STR(WINED3DFMT_A8L8);
+ FMT_TO_STR(WINED3DFMT_A4L4);
+ FMT_TO_STR(WINED3DFMT_V8U8);
+ FMT_TO_STR(WINED3DFMT_L6V5U5);
+ FMT_TO_STR(WINED3DFMT_X8L8V8U8);
+ FMT_TO_STR(WINED3DFMT_Q8W8V8U8);
+ FMT_TO_STR(WINED3DFMT_V16U16);
+ FMT_TO_STR(WINED3DFMT_W11V11U10);
+ FMT_TO_STR(WINED3DFMT_A2W10V10U10);
+ FMT_TO_STR(WINED3DFMT_UYVY);
+ FMT_TO_STR(WINED3DFMT_YUY2);
+ FMT_TO_STR(WINED3DFMT_DXT1);
+ FMT_TO_STR(WINED3DFMT_DXT2);
+ FMT_TO_STR(WINED3DFMT_DXT3);
+ FMT_TO_STR(WINED3DFMT_DXT4);
+ FMT_TO_STR(WINED3DFMT_DXT5);
+ FMT_TO_STR(WINED3DFMT_MULTI2_ARGB);
+ FMT_TO_STR(WINED3DFMT_G8R8_G8B8);
+ FMT_TO_STR(WINED3DFMT_R8G8_B8G8);
+ FMT_TO_STR(WINED3DFMT_D16_LOCKABLE);
+ FMT_TO_STR(WINED3DFMT_D32);
+ FMT_TO_STR(WINED3DFMT_D15S1);
+ FMT_TO_STR(WINED3DFMT_D24S8);
+ FMT_TO_STR(WINED3DFMT_D24X8);
+ FMT_TO_STR(WINED3DFMT_D24X4S4);
+ FMT_TO_STR(WINED3DFMT_D16);
+ FMT_TO_STR(WINED3DFMT_D32F_LOCKABLE);
+ FMT_TO_STR(WINED3DFMT_VERTEXDATA);
+ FMT_TO_STR(WINED3DFMT_INDEX16);
+ FMT_TO_STR(WINED3DFMT_INDEX32);
+ FMT_TO_STR(WINED3DFMT_Q16W16V16U16);
+ FMT_TO_STR(WINED3DFMT_R16F);
+ FMT_TO_STR(WINED3DFMT_G16R16F);
+ FMT_TO_STR(WINED3DFMT_A16B16G16R16F);
#undef FMT_TO_STR
default:
FIXME("Unrecognized %u D3DFORMAT!\n", fmt);
@@ -147,82 +159,82 @@
const char* debug_d3drenderstate(DWORD state) {
switch (state) {
#define D3DSTATE_TO_STR(u) case u: return #u
- D3DSTATE_TO_STR(D3DRS_ZENABLE );
- D3DSTATE_TO_STR(D3DRS_FILLMODE );
- D3DSTATE_TO_STR(D3DRS_SHADEMODE );
- D3DSTATE_TO_STR(D3DRS_LINEPATTERN );
- D3DSTATE_TO_STR(D3DRS_ZWRITEENABLE );
- D3DSTATE_TO_STR(D3DRS_ALPHATESTENABLE );
- D3DSTATE_TO_STR(D3DRS_LASTPIXEL );
- D3DSTATE_TO_STR(D3DRS_SRCBLEND );
- D3DSTATE_TO_STR(D3DRS_DESTBLEND );
- D3DSTATE_TO_STR(D3DRS_CULLMODE );
- D3DSTATE_TO_STR(D3DRS_ZFUNC );
- D3DSTATE_TO_STR(D3DRS_ALPHAREF );
- D3DSTATE_TO_STR(D3DRS_ALPHAFUNC );
- D3DSTATE_TO_STR(D3DRS_DITHERENABLE );
- D3DSTATE_TO_STR(D3DRS_ALPHABLENDENABLE );
- D3DSTATE_TO_STR(D3DRS_FOGENABLE );
- D3DSTATE_TO_STR(D3DRS_SPECULARENABLE );
- D3DSTATE_TO_STR(D3DRS_ZVISIBLE );
- D3DSTATE_TO_STR(D3DRS_FOGCOLOR );
- D3DSTATE_TO_STR(D3DRS_FOGTABLEMODE );
- D3DSTATE_TO_STR(D3DRS_FOGSTART );
- D3DSTATE_TO_STR(D3DRS_FOGEND );
- D3DSTATE_TO_STR(D3DRS_FOGDENSITY );
- D3DSTATE_TO_STR(D3DRS_EDGEANTIALIAS );
- D3DSTATE_TO_STR(D3DRS_ZBIAS );
- D3DSTATE_TO_STR(D3DRS_RANGEFOGENABLE );
- D3DSTATE_TO_STR(D3DRS_STENCILENABLE );
- D3DSTATE_TO_STR(D3DRS_STENCILFAIL );
- D3DSTATE_TO_STR(D3DRS_STENCILZFAIL );
- D3DSTATE_TO_STR(D3DRS_STENCILPASS );
- D3DSTATE_TO_STR(D3DRS_STENCILFUNC );
- D3DSTATE_TO_STR(D3DRS_STENCILREF );
- D3DSTATE_TO_STR(D3DRS_STENCILMASK );
- D3DSTATE_TO_STR(D3DRS_STENCILWRITEMASK );
- D3DSTATE_TO_STR(D3DRS_TEXTUREFACTOR );
- D3DSTATE_TO_STR(D3DRS_WRAP0 );
- D3DSTATE_TO_STR(D3DRS_WRAP1 );
- D3DSTATE_TO_STR(D3DRS_WRAP2 );
- D3DSTATE_TO_STR(D3DRS_WRAP3 );
- D3DSTATE_TO_STR(D3DRS_WRAP4 );
- D3DSTATE_TO_STR(D3DRS_WRAP5 );
- D3DSTATE_TO_STR(D3DRS_WRAP6 );
- D3DSTATE_TO_STR(D3DRS_WRAP7 );
- D3DSTATE_TO_STR(D3DRS_CLIPPING );
- D3DSTATE_TO_STR(D3DRS_LIGHTING );
- D3DSTATE_TO_STR(D3DRS_AMBIENT );
- D3DSTATE_TO_STR(D3DRS_FOGVERTEXMODE );
- D3DSTATE_TO_STR(D3DRS_COLORVERTEX );
- D3DSTATE_TO_STR(D3DRS_LOCALVIEWER );
- D3DSTATE_TO_STR(D3DRS_NORMALIZENORMALS );
- D3DSTATE_TO_STR(D3DRS_DIFFUSEMATERIALSOURCE );
- D3DSTATE_TO_STR(D3DRS_SPECULARMATERIALSOURCE );
- D3DSTATE_TO_STR(D3DRS_AMBIENTMATERIALSOURCE );
- D3DSTATE_TO_STR(D3DRS_EMISSIVEMATERIALSOURCE );
- D3DSTATE_TO_STR(D3DRS_VERTEXBLEND );
- D3DSTATE_TO_STR(D3DRS_CLIPPLANEENABLE );
- D3DSTATE_TO_STR(D3DRS_SOFTWAREVERTEXPROCESSING );
- D3DSTATE_TO_STR(D3DRS_POINTSIZE );
- D3DSTATE_TO_STR(D3DRS_POINTSIZE_MIN );
- D3DSTATE_TO_STR(D3DRS_POINTSPRITEENABLE );
- D3DSTATE_TO_STR(D3DRS_POINTSCALEENABLE );
- D3DSTATE_TO_STR(D3DRS_POINTSCALE_A );
- D3DSTATE_TO_STR(D3DRS_POINTSCALE_B );
- D3DSTATE_TO_STR(D3DRS_POINTSCALE_C );
- D3DSTATE_TO_STR(D3DRS_MULTISAMPLEANTIALIAS );
- D3DSTATE_TO_STR(D3DRS_MULTISAMPLEMASK );
- D3DSTATE_TO_STR(D3DRS_PATCHEDGESTYLE );
- D3DSTATE_TO_STR(D3DRS_PATCHSEGMENTS );
- D3DSTATE_TO_STR(D3DRS_DEBUGMONITORTOKEN );
- D3DSTATE_TO_STR(D3DRS_POINTSIZE_MAX );
- D3DSTATE_TO_STR(D3DRS_INDEXEDVERTEXBLENDENABLE );
- D3DSTATE_TO_STR(D3DRS_COLORWRITEENABLE );
- D3DSTATE_TO_STR(D3DRS_TWEENFACTOR );
- D3DSTATE_TO_STR(D3DRS_BLENDOP );
- D3DSTATE_TO_STR(D3DRS_POSITIONORDER );
- D3DSTATE_TO_STR(D3DRS_NORMALORDER );
+ D3DSTATE_TO_STR(WINED3DRS_ZENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_FILLMODE );
+ D3DSTATE_TO_STR(WINED3DRS_SHADEMODE );
+ D3DSTATE_TO_STR(WINED3DRS_LINEPATTERN );
+ D3DSTATE_TO_STR(WINED3DRS_ZWRITEENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_ALPHATESTENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_LASTPIXEL );
+ D3DSTATE_TO_STR(WINED3DRS_SRCBLEND );
+ D3DSTATE_TO_STR(WINED3DRS_DESTBLEND );
+ D3DSTATE_TO_STR(WINED3DRS_CULLMODE );
+ D3DSTATE_TO_STR(WINED3DRS_ZFUNC );
+ D3DSTATE_TO_STR(WINED3DRS_ALPHAREF );
+ D3DSTATE_TO_STR(WINED3DRS_ALPHAFUNC );
+ D3DSTATE_TO_STR(WINED3DRS_DITHERENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_ALPHABLENDENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_FOGENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_SPECULARENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_ZVISIBLE );
+ D3DSTATE_TO_STR(WINED3DRS_FOGCOLOR );
+ D3DSTATE_TO_STR(WINED3DRS_FOGTABLEMODE );
+ D3DSTATE_TO_STR(WINED3DRS_FOGSTART );
+ D3DSTATE_TO_STR(WINED3DRS_FOGEND );
+ D3DSTATE_TO_STR(WINED3DRS_FOGDENSITY );
+ D3DSTATE_TO_STR(WINED3DRS_EDGEANTIALIAS );
+ D3DSTATE_TO_STR(WINED3DRS_ZBIAS );
+ D3DSTATE_TO_STR(WINED3DRS_RANGEFOGENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_STENCILENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_STENCILFAIL );
+ D3DSTATE_TO_STR(WINED3DRS_STENCILZFAIL );
+ D3DSTATE_TO_STR(WINED3DRS_STENCILPASS );
+ D3DSTATE_TO_STR(WINED3DRS_STENCILFUNC );
+ D3DSTATE_TO_STR(WINED3DRS_STENCILREF );
+ D3DSTATE_TO_STR(WINED3DRS_STENCILMASK );
+ D3DSTATE_TO_STR(WINED3DRS_STENCILWRITEMASK );
+ D3DSTATE_TO_STR(WINED3DRS_TEXTUREFACTOR );
+ D3DSTATE_TO_STR(WINED3DRS_WRAP0 );
+ D3DSTATE_TO_STR(WINED3DRS_WRAP1 );
+ D3DSTATE_TO_STR(WINED3DRS_WRAP2 );
+ D3DSTATE_TO_STR(WINED3DRS_WRAP3 );
+ D3DSTATE_TO_STR(WINED3DRS_WRAP4 );
+ D3DSTATE_TO_STR(WINED3DRS_WRAP5 );
+ D3DSTATE_TO_STR(WINED3DRS_WRAP6 );
+ D3DSTATE_TO_STR(WINED3DRS_WRAP7 );
+ D3DSTATE_TO_STR(WINED3DRS_CLIPPING );
+ D3DSTATE_TO_STR(WINED3DRS_LIGHTING );
+ D3DSTATE_TO_STR(WINED3DRS_AMBIENT );
+ D3DSTATE_TO_STR(WINED3DRS_FOGVERTEXMODE );
+ D3DSTATE_TO_STR(WINED3DRS_COLORVERTEX );
+ D3DSTATE_TO_STR(WINED3DRS_LOCALVIEWER );
+ D3DSTATE_TO_STR(WINED3DRS_NORMALIZENORMALS );
+ D3DSTATE_TO_STR(WINED3DRS_DIFFUSEMATERIALSOURCE );
+ D3DSTATE_TO_STR(WINED3DRS_SPECULARMATERIALSOURCE );
+ D3DSTATE_TO_STR(WINED3DRS_AMBIENTMATERIALSOURCE );
+ D3DSTATE_TO_STR(WINED3DRS_EMISSIVEMATERIALSOURCE );
+ D3DSTATE_TO_STR(WINED3DRS_VERTEXBLEND );
+ D3DSTATE_TO_STR(WINED3DRS_CLIPPLANEENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_SOFTWAREVERTEXPROCESSING );
+ D3DSTATE_TO_STR(WINED3DRS_POINTSIZE );
+ D3DSTATE_TO_STR(WINED3DRS_POINTSIZE_MIN );
+ D3DSTATE_TO_STR(WINED3DRS_POINTSPRITEENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_POINTSCALEENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_POINTSCALE_A );
+ D3DSTATE_TO_STR(WINED3DRS_POINTSCALE_B );
+ D3DSTATE_TO_STR(WINED3DRS_POINTSCALE_C );
+ D3DSTATE_TO_STR(WINED3DRS_MULTISAMPLEANTIALIAS );
+ D3DSTATE_TO_STR(WINED3DRS_MULTISAMPLEMASK );
+ D3DSTATE_TO_STR(WINED3DRS_PATCHEDGESTYLE );
+ D3DSTATE_TO_STR(WINED3DRS_PATCHSEGMENTS );
+ D3DSTATE_TO_STR(WINED3DRS_DEBUGMONITORTOKEN );
+ D3DSTATE_TO_STR(WINED3DRS_POINTSIZE_MAX );
+ D3DSTATE_TO_STR(WINED3DRS_INDEXEDVERTEXBLENDENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_COLORWRITEENABLE );
+ D3DSTATE_TO_STR(WINED3DRS_TWEENFACTOR );
+ D3DSTATE_TO_STR(WINED3DRS_BLENDOP );
+ D3DSTATE_TO_STR(WINED3DRS_POSITIONORDER );
+ D3DSTATE_TO_STR(WINED3DRS_NORMALORDER );
#undef D3DSTATE_TO_STR
default:
FIXME("Unrecognized %lu render state!\n", state);
@@ -1540,9 +1552,9 @@
if (GL_SUPPORT(EXT_TEXTURE_COMPRESSION_S3TC)) {
switch (fmt) {
- case D3DFMT_DXT1: retVal = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break;
- case D3DFMT_DXT3: retVal = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break;
- case D3DFMT_DXT5: retVal = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break;
+ case WINED3DFMT_DXT1: retVal = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break;
+ case WINED3DFMT_DXT3: retVal = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break;
+ case WINED3DFMT_DXT5: retVal = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break;
default:
/* stupid compiler */
break;
@@ -1552,29 +1564,29 @@
if (retVal == 0) {
switch (fmt) {
/* Paletted */
- case D3DFMT_P8: retVal = GL_COLOR_INDEX8_EXT; break;
- case D3DFMT_A8P8: retVal = GL_COLOR_INDEX8_EXT; break;
+ case WINED3DFMT_P8: retVal = GL_COLOR_INDEX8_EXT; break;
+ case WINED3DFMT_A8P8: retVal = GL_COLOR_INDEX8_EXT; break;
/* Luminance */
- case D3DFMT_L8: retVal = GL_LUMINANCE8; break;
- case D3DFMT_A8L8: retVal = GL_LUMINANCE8_ALPHA8; break;
- case D3DFMT_A4L4: retVal = GL_LUMINANCE4_ALPHA4; break;
+ case WINED3DFMT_L8: retVal = GL_LUMINANCE8; break;
+ case WINED3DFMT_A8L8: retVal = GL_LUMINANCE8_ALPHA8; break;
+ case WINED3DFMT_A4L4: retVal = GL_LUMINANCE4_ALPHA4; break;
/* Bump */
- case D3DFMT_V8U8: retVal = GL_COLOR_INDEX8_EXT; break;
- case D3DFMT_V16U16: retVal = GL_COLOR_INDEX; break;
- case D3DFMT_L6V5U5: retVal = GL_COLOR_INDEX8_EXT; break;
- case D3DFMT_X8L8V8U8: retVal = GL_COLOR_INDEX; break;
+ case WINED3DFMT_V8U8: retVal = GL_COLOR_INDEX8_EXT; break;
+ case WINED3DFMT_V16U16: retVal = GL_COLOR_INDEX; break;
+ case WINED3DFMT_L6V5U5: retVal = GL_COLOR_INDEX8_EXT; break;
+ case WINED3DFMT_X8L8V8U8: retVal = GL_COLOR_INDEX; break;
/* color buffer */
- case D3DFMT_R3G3B2: retVal = GL_R3_G3_B2; break;
- case D3DFMT_R5G6B5: retVal = GL_RGB5; break; /* fixme: internal format 6 for g? */
- case D3DFMT_R8G8B8: retVal = GL_RGB8; break;
- case D3DFMT_A1R5G5B5: retVal = GL_RGB5_A1; break;
- case D3DFMT_X1R5G5B5: retVal = GL_RGB5_A1; break;
- case D3DFMT_A4R4G4B4: retVal = GL_RGBA4; break;
- case D3DFMT_X4R4G4B4: retVal = GL_RGBA4; break;
- case D3DFMT_A8R8G8B8: retVal = GL_RGBA8; break;
- case D3DFMT_X8R8G8B8: retVal = GL_RGBA8; break;
+ case WINED3DFMT_R3G3B2: retVal = GL_R3_G3_B2; break;
+ case WINED3DFMT_R5G6B5: retVal = GL_RGB5; break; /* fixme: internal format 6 for g? */
+ case WINED3DFMT_R8G8B8: retVal = GL_RGB8; break;
+ case WINED3DFMT_A1R5G5B5: retVal = GL_RGB5_A1; break;
+ case WINED3DFMT_X1R5G5B5: retVal = GL_RGB5_A1; break;
+ case WINED3DFMT_A4R4G4B4: retVal = GL_RGBA4; break;
+ case WINED3DFMT_X4R4G4B4: retVal = GL_RGBA4; break;
+ case WINED3DFMT_A8R8G8B8: retVal = GL_RGBA8; break;
+ case WINED3DFMT_X8R8G8B8: retVal = GL_RGBA8; break;
/* to see */
- case D3DFMT_A8: retVal = GL_ALPHA8; break;
+ case WINED3DFMT_A8: retVal = GL_ALPHA8; break;
default:
FIXME("Unhandled fmt(%u,%s)\n", fmt, debug_d3dformat(fmt));
retVal = GL_RGB8;
@@ -1589,9 +1601,9 @@
if (GL_SUPPORT(EXT_TEXTURE_COMPRESSION_S3TC)) {
switch (fmt) {
- case D3DFMT_DXT1: retVal = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break;
- case D3DFMT_DXT3: retVal = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break;
- case D3DFMT_DXT5: retVal = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break;
+ case WINED3DFMT_DXT1: retVal = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT; break;
+ case WINED3DFMT_DXT3: retVal = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT; break;
+ case WINED3DFMT_DXT5: retVal = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; break;
default:
/* stupid compiler */
break;
@@ -1601,29 +1613,29 @@
if (retVal == 0) {
switch (fmt) {
/* Paletted */
- case D3DFMT_P8: retVal = GL_COLOR_INDEX; break;
- case D3DFMT_A8P8: retVal = GL_COLOR_INDEX; break;
+ case WINED3DFMT_P8: retVal = GL_COLOR_INDEX; break;
+ case WINED3DFMT_A8P8: retVal = GL_COLOR_INDEX; break;
/* Luminance */
- case D3DFMT_L8: retVal = GL_LUMINANCE; break;
- case D3DFMT_A8L8: retVal = GL_LUMINANCE_ALPHA; break;
- case D3DFMT_A4L4: retVal = GL_LUMINANCE_ALPHA; break;
+ case WINED3DFMT_L8: retVal = GL_LUMINANCE; break;
+ case WINED3DFMT_A8L8: retVal = GL_LUMINANCE_ALPHA; break;
+ case WINED3DFMT_A4L4: retVal = GL_LUMINANCE_ALPHA; break;
/* Bump */
- case D3DFMT_V8U8: retVal = GL_COLOR_INDEX; break;
- case D3DFMT_V16U16: retVal = GL_COLOR_INDEX; break;
- case D3DFMT_L6V5U5: retVal = GL_COLOR_INDEX; break;
- case D3DFMT_X8L8V8U8: retVal = GL_COLOR_INDEX; break;
+ case WINED3DFMT_V8U8: retVal = GL_COLOR_INDEX; break;
+ case WINED3DFMT_V16U16: retVal = GL_COLOR_INDEX; break;
+ case WINED3DFMT_L6V5U5: retVal = GL_COLOR_INDEX; break;
+ case WINED3DFMT_X8L8V8U8: retVal = GL_COLOR_INDEX; break;
/* color buffer */
- case D3DFMT_R3G3B2: retVal = GL_BGR; break;
- case D3DFMT_R5G6B5: retVal = GL_RGB; break;
- case D3DFMT_R8G8B8: retVal = GL_RGB; break;
- case D3DFMT_A1R5G5B5: retVal = GL_BGRA; break;
- case D3DFMT_X1R5G5B5: retVal = GL_BGRA; break;
- case D3DFMT_A4R4G4B4: retVal = GL_BGRA; break;
- case D3DFMT_X4R4G4B4: retVal = GL_BGRA; break;
- case D3DFMT_A8R8G8B8: retVal = GL_BGRA; break;
- case D3DFMT_X8R8G8B8: retVal = GL_BGRA; break;
+ case WINED3DFMT_R3G3B2: retVal = GL_BGR; break;
+ case WINED3DFMT_R5G6B5: retVal = GL_RGB; break;
+ case WINED3DFMT_R8G8B8: retVal = GL_RGB; break;
+ case WINED3DFMT_A1R5G5B5: retVal = GL_BGRA; break;
+ case WINED3DFMT_X1R5G5B5: retVal = GL_BGRA; break;
+ case WINED3DFMT_A4R4G4B4: retVal = GL_BGRA; break;
+ case WINED3DFMT_X4R4G4B4: retVal = GL_BGRA; break;
+ case WINED3DFMT_A8R8G8B8: retVal = GL_BGRA; break;
+ case WINED3DFMT_X8R8G8B8: retVal = GL_BGRA; break;
/* to see */
- case D3DFMT_A8: retVal = GL_ALPHA; break;
+ case WINED3DFMT_A8: retVal = GL_ALPHA; break;
default:
FIXME("Unhandled fmt(%u,%s)\n", fmt, debug_d3dformat(fmt));
retVal = GL_BGR;
@@ -1639,9 +1651,9 @@
if (GL_SUPPORT(EXT_TEXTURE_COMPRESSION_S3TC)) {
switch (fmt) {
- case D3DFMT_DXT1: retVal = 0; break;
- case D3DFMT_DXT3: retVal = 0; break;
- case D3DFMT_DXT5: retVal = 0; break;
+ case WINED3DFMT_DXT1: retVal = 0; break;
+ case WINED3DFMT_DXT3: retVal = 0; break;
+ case WINED3DFMT_DXT5: retVal = 0; break;
default:
/* stupid compiler */
break;
@@ -1651,29 +1663,29 @@
if (retVal == 0) {
switch (fmt) {
/* Paletted */
- case D3DFMT_P8: retVal = GL_UNSIGNED_BYTE; break;
- case D3DFMT_A8P8: retVal = GL_UNSIGNED_BYTE; break;
+ case WINED3DFMT_P8: retVal = GL_UNSIGNED_BYTE; break;
+ case WINED3DFMT_A8P8: retVal = GL_UNSIGNED_BYTE; break;
/* Luminance */
- case D3DFMT_L8: retVal = GL_UNSIGNED_BYTE; break;
- case D3DFMT_A8L8: retVal = GL_UNSIGNED_BYTE; break;
- case D3DFMT_A4L4: retVal = GL_UNSIGNED_BYTE; break;
+ case WINED3DFMT_L8: retVal = GL_UNSIGNED_BYTE; break;
+ case WINED3DFMT_A8L8: retVal = GL_UNSIGNED_BYTE; break;
+ case WINED3DFMT_A4L4: retVal = GL_UNSIGNED_BYTE; break;
/* Bump */
- case D3DFMT_V8U8: retVal = GL_UNSIGNED_BYTE; break;
- case D3DFMT_V16U16: retVal = GL_UNSIGNED_SHORT; break;
- case D3DFMT_L6V5U5: retVal = GL_UNSIGNED_SHORT_5_5_5_1; break;
- case D3DFMT_X8L8V8U8: retVal = GL_UNSIGNED_BYTE; break;
+ case WINED3DFMT_V8U8: retVal = GL_UNSIGNED_BYTE; break;
+ case WINED3DFMT_V16U16: retVal = GL_UNSIGNED_SHORT; break;
+ case WINED3DFMT_L6V5U5: retVal = GL_UNSIGNED_SHORT_5_5_5_1; break;
+ case WINED3DFMT_X8L8V8U8: retVal = GL_UNSIGNED_BYTE; break;
/* Color buffer */
- case D3DFMT_R3G3B2: retVal = GL_UNSIGNED_BYTE_2_3_3_REV; break;
- case D3DFMT_R5G6B5: retVal = GL_UNSIGNED_SHORT_5_6_5; break;
- case D3DFMT_R8G8B8: retVal = GL_UNSIGNED_BYTE; break;
- case D3DFMT_A1R5G5B5: retVal = GL_UNSIGNED_SHORT_1_5_5_5_REV; break;
- case D3DFMT_X1R5G5B5: retVal = GL_UNSIGNED_SHORT_1_5_5_5_REV; break;
- case D3DFMT_A4R4G4B4: retVal = GL_UNSIGNED_SHORT_4_4_4_4_REV; break;
- case D3DFMT_X4R4G4B4: retVal = GL_UNSIGNED_SHORT_4_4_4_4_REV; break;
- case D3DFMT_A8R8G8B8: retVal = GL_UNSIGNED_INT_8_8_8_8_REV; break;
- case D3DFMT_X8R8G8B8: retVal = GL_UNSIGNED_INT_8_8_8_8_REV; break;
+ case WINED3DFMT_R3G3B2: retVal = GL_UNSIGNED_BYTE_2_3_3_REV; break;
+ case WINED3DFMT_R5G6B5: retVal = GL_UNSIGNED_SHORT_5_6_5; break;
+ case WINED3DFMT_R8G8B8: retVal = GL_UNSIGNED_BYTE; break;
+ case WINED3DFMT_A1R5G5B5: retVal = GL_UNSIGNED_SHORT_1_5_5_5_REV; break;
+ case WINED3DFMT_X1R5G5B5: retVal = GL_UNSIGNED_SHORT_1_5_5_5_REV; break;
+ case WINED3DFMT_A4R4G4B4: retVal = GL_UNSIGNED_SHORT_4_4_4_4_REV; break;
+ case WINED3DFMT_X4R4G4B4: retVal = GL_UNSIGNED_SHORT_4_4_4_4_REV; break;
+ case WINED3DFMT_A8R8G8B8: retVal = GL_UNSIGNED_INT_8_8_8_8_REV; break;
+ case WINED3DFMT_X8R8G8B8: retVal = GL_UNSIGNED_INT_8_8_8_8_REV; break;
/* to see */
- case D3DFMT_A8: retVal = GL_ALPHA; break;
+ case WINED3DFMT_A8: retVal = GL_ALPHA; break;
default:
FIXME("Unhandled fmt(%u,%s)\n", fmt, debug_d3dformat(fmt));
retVal = GL_UNSIGNED_BYTE;
@@ -1689,45 +1701,45 @@
switch (fmt) {
/* color buffer */
- case D3DFMT_R3G3B2: retVal = 1; break;
- case D3DFMT_R5G6B5: retVal = 2; break;
- case D3DFMT_R8G8B8: retVal = 3; break;
- case D3DFMT_A1R5G5B5: retVal = 2; break;
- case D3DFMT_X1R5G5B5: retVal = 2; break;
- case D3DFMT_A4R4G4B4: retVal = 2; break;
- case D3DFMT_X4R4G4B4: retVal = 2; break;
- case D3DFMT_A8R8G8B8: retVal = 4; break;
- case D3DFMT_X8R8G8B8: retVal = 4; break;
+ case WINED3DFMT_R3G3B2: retVal = 1; break;
+ case WINED3DFMT_R5G6B5: retVal = 2; break;
+ case WINED3DFMT_R8G8B8: retVal = 3; break;
+ case WINED3DFMT_A1R5G5B5: retVal = 2; break;
+ case WINED3DFMT_X1R5G5B5: retVal = 2; break;
+ case WINED3DFMT_A4R4G4B4: retVal = 2; break;
+ case WINED3DFMT_X4R4G4B4: retVal = 2; break;
+ case WINED3DFMT_A8R8G8B8: retVal = 4; break;
+ case WINED3DFMT_X8R8G8B8: retVal = 4; break;
/* Paletted */
- case D3DFMT_P8: retVal = 1; break;
- case D3DFMT_A8P8: retVal = 2; break;
+ case WINED3DFMT_P8: retVal = 1; break;
+ case WINED3DFMT_A8P8: retVal = 2; break;
/* depth/stencil buffer */
- case D3DFMT_D16_LOCKABLE: retVal = 2; break;
- case D3DFMT_D16: retVal = 2; break;
- case D3DFMT_D32: retVal = 4; break;
- case D3DFMT_D15S1: retVal = 2; break;
- case D3DFMT_D24X4S4: retVal = 4; break;
- case D3DFMT_D24S8: retVal = 4; break;
- case D3DFMT_D24X8: retVal = 4; break;
+ case WINED3DFMT_D16_LOCKABLE: retVal = 2; break;
+ case WINED3DFMT_D16: retVal = 2; break;
+ case WINED3DFMT_D32: retVal = 4; break;
+ case WINED3DFMT_D15S1: retVal = 2; break;
+ case WINED3DFMT_D24X4S4: retVal = 4; break;
+ case WINED3DFMT_D24S8: retVal = 4; break;
+ case WINED3DFMT_D24X8: retVal = 4; break;
/* Luminance */
- case D3DFMT_L8: retVal = 1; break;
- case D3DFMT_A4L4: retVal = 1; break;
- case D3DFMT_A8L8: retVal = 2; break;
+ case WINED3DFMT_L8: retVal = 1; break;
+ case WINED3DFMT_A4L4: retVal = 1; break;
+ case WINED3DFMT_A8L8: retVal = 2; break;
/* Bump */
- case D3DFMT_V8U8: retVal = 2; break;
- case D3DFMT_L6V5U5: retVal = 2; break;
- case D3DFMT_V16U16: retVal = 4; break;
- case D3DFMT_X8L8V8U8: retVal = 4; break;
+ case WINED3DFMT_V8U8: retVal = 2; break;
+ case WINED3DFMT_L6V5U5: retVal = 2; break;
+ case WINED3DFMT_V16U16: retVal = 4; break;
+ case WINED3DFMT_X8L8V8U8: retVal = 4; break;
/* Compressed */
- case D3DFMT_DXT1: retVal = 1; break; /* Actually 8 bytes per 16 pixels - Special cased later */
- case D3DFMT_DXT3: retVal = 1; break; /* Actually 16 bytes per 16 pixels */
- case D3DFMT_DXT5: retVal = 1; break; /* Actually 16 bytes per 16 pixels */
+ case WINED3DFMT_DXT1: retVal = 1; break; /* Actually 8 bytes per 16 pixels - Special cased later */
+ case WINED3DFMT_DXT3: retVal = 1; break; /* Actually 16 bytes per 16 pixels */
+ case WINED3DFMT_DXT5: retVal = 1; break; /* Actually 16 bytes per 16 pixels */
/* to see */
- case D3DFMT_A8: retVal = 1; break;
+ case WINED3DFMT_A8: retVal = 1; break;
/* unknown */
- case D3DFMT_UNKNOWN:
+ case WINED3DFMT_UNKNOWN:
/* Guess at the highest value of the above */
- TRACE("D3DFMT_UNKNOWN - Guessing at 4 bytes/pixel %u\n", fmt);
+ TRACE("WINED3DFMT_UNKNOWN - Guessing at 4 bytes/pixel %u\n", fmt);
retVal = 4;
break;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index e8ca912..683c594 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -126,13 +126,12 @@
#define MAX_STREAMS 16 /* Maximum possible streams - used for fixed size arrays
See MaxStreams in MSDN under GetDeviceCaps */
+ /* Maximum number of constants provided to the shaders */
#define HIGHEST_TRANSFORMSTATE 512
/* Highest value in D3DTRANSFORMSTATETYPE */
-#define HIGHEST_RENDER_STATE 209
- /* Highest D3DRS_ value */
-#define HIGHEST_TEXTURE_STATE 32
+#define HIGHEST_TEXTURE_STATE D3DTSS_CONSTANT
/* Highest D3DTSS_ value */
-#define WINED3D_VSHADER_MAX_CONSTANTS 96
+#define HIGHEST_SAMPLER_STATE D3DSAMP_DMAPOFFSET
/* Maximum number of constants provided to the shaders */
#define MAX_CLIPPLANES D3DMAXUSERCLIPPLANES
@@ -666,7 +665,7 @@
BOOL textures[8];
BOOL transform[HIGHEST_TRANSFORMSTATE];
BOOL viewport;
- BOOL renderState[HIGHEST_RENDER_STATE];
+ BOOL renderState[WINEHIGHEST_RENDER_STATE];
BOOL textureState[8][HIGHEST_TEXTURE_STATE];
BOOL clipplane[MAX_CLIPPLANES];
BOOL vertexDecl;
@@ -727,7 +726,7 @@
FLOAT tween_factor;
/* RenderState */
- DWORD renderState[HIGHEST_RENDER_STATE];
+ DWORD renderState[WINEHIGHEST_RENDER_STATE];
/* Texture */
IWineD3DBaseTexture *textures[8];
@@ -741,6 +740,31 @@
extern IWineD3DStateBlockVtbl IWineD3DStateBlock_Vtbl;
/*****************************************************************************
+ * IWineD3DQueryImpl implementation structure (extends IUnknown)
+ */
+typedef struct IWineD3DQueryImpl
+{
+ IWineD3DQueryVtbl *lpVtbl;
+ DWORD ref; /* Note: Ref counting not required */
+
+ IUnknown *parent;
+ /*TODO: replace with iface usage */
+#if 0
+ IWineD3DDevice *wineD3DDevice;
+#else
+ IWineD3DDeviceImpl *wineD3DDevice;
+#endif
+ /* IWineD3DQuery fields */
+
+ D3DQUERYTYPE type;
+ void *extendedData;
+
+
+} IWineD3DQueryImpl;
+
+extern IWineD3DQueryVtbl IWineD3DQuery_Vtbl;
+
+/*****************************************************************************
* Utility function prototypes
*/
diff --git a/include/d3d9types.h b/include/d3d9types.h
index 4557f10..ccd7a63 100644
--- a/include/d3d9types.h
+++ b/include/d3d9types.h
@@ -1,6 +1,7 @@
/*
* Copyright (C) 2002-2003 Jason Edmeades
- * Raphael Junqueira
+ * Copyright (C) 2002-2003 Raphael Junqueira
+ * Copyright (C) 2005 Oliver Stieber
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -73,6 +74,7 @@
#define D3DLOCK_NOSYSLOCK 0x0800
#define D3DLOCK_NOOVERWRITE 0x1000
#define D3DLOCK_DISCARD 0x2000
+#define D3DLOCK_DONOTWAIT 0x4000
#define D3DLOCK_NO_DIRTY_UPDATE 0x8000
#define D3DMAXUSERCLIPPLANES 32
@@ -86,6 +88,7 @@
#define D3DRENDERSTATE_WRAPBIAS 128UL
+/* MSDN has this in d3d9caps.h, but it should be here */
#define D3DTSS_TCI_PASSTHRU 0x00000
#define D3DTSS_TCI_CAMERASPACENORMAL 0x10000
#define D3DTSS_TCI_CAMERASPACEPOSITION 0x20000
@@ -99,15 +102,25 @@
#define D3DTS_WORLD3 D3DTS_WORLDMATRIX(3)
#define D3DTS_WORLDMATRIX(index) (D3DTRANSFORMSTATETYPE)(index + 256)
-#define D3DUSAGE_RENDERTARGET 0x01
-#define D3DUSAGE_DEPTHSTENCIL 0x02
-#define D3DUSAGE_WRITEONLY 0x08
-#define D3DUSAGE_SOFTWAREPROCESSING 0x10
-#define D3DUSAGE_DONOTCLIP 0x20
-#define D3DUSAGE_POINTS 0x40
-#define D3DUSAGE_RTPATCHES 0x80
-#define D3DUSAGE_NPATCHES 0x100
-#define D3DUSAGE_DYNAMIC 0x200
+#define D3DUSAGE_RENDERTARGET 0x00000001L
+#define D3DUSAGE_DEPTHSTENCIL 0x00000002L
+#define D3DUSAGE_WRITEONLY 0x00000008L
+#define D3DUSAGE_SOFTWAREPROCESSING 0x00000010L
+#define D3DUSAGE_DONOTCLIP 0x00000020L
+#define D3DUSAGE_POINTS 0x00000040L
+#define D3DUSAGE_RTPATCHES 0x00000080L
+#define D3DUSAGE_NPATCHES 0x00000100L
+#define D3DUSAGE_DYNAMIC 0x00000200L
+#define D3DUSAGE_AUTOGENMIPMAP 0x00000400L
+#define D3DUSAGE_DMAP 0x00004000L
+
+#define D3DUSAGE_QUERY_FILTER 0x00020000L
+#define D3DUSAGE_QUERY_LEGACYBUMPMAP 0x00008000L
+#define D3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000L
+#define D3DUSAGE_QUERY_SRGBREAD 0x00010000L
+#define D3DUSAGE_QUERY_SRGBWRITE 0x00040000L
+#define D3DUSAGE_QUERY_VERTEXTEXTURE 0x00100000L
+
#define D3DWRAP_U 1
#define D3DWRAP_V 2
@@ -164,8 +177,19 @@
#define D3DCOLORWRITEENABLE_BLUE (1L<<2)
#define D3DCOLORWRITEENABLE_ALPHA (1L<<3)
+#define D3DPV_DONOTCOPYDATA (1 << 0)
+
+#define D3DSTREAMSOURCE_INDEXEDDATA (1 << 30)
+#define D3DSTREAMSOURCE_INSTANCEDATA (2 << 30)
+
#define D3D_MAX_SIMULTANEOUS_RENDERTARGETS 4
+#define MAXD3DDECLLENGTH 64 /* +end marker */
+#define MAXD3DDECLMETHOD D3DDECLMETHOD_LOOKUPPRESAMPLED
+#define MAXD3DDECLTYPE D3DDECLTYPE_UNUSED
+#define MAXD3DDECLUSAGE D3DDECLUSAGE_SAMPLE
+#define MAXD3DDECLUSAGEINDEX 15
+
#define D3DDMAPSAMPLER 256
#define D3DVERTEXTEXTURESAMPLER0 (D3DDMAPSAMPLER+1)
#define D3DVERTEXTEXTURESAMPLER1 (D3DDMAPSAMPLER+2)
@@ -176,6 +200,14 @@
((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))
+/* Constants used by D3DPRESENT_PARAMETERS. when creating a device or swapchain */
+
+#define D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001 /* Create a lockable backbuffer */
+#define D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002 /* Discard Z buffer */
+#define D3DPRESENTFLAG_DEVICECLIP 0x00000004 /* Clip the window blited into the client area 2k + xp only */
+#define D3DPRESENTFLAG_VIDEO 0x00000010 /* backbuffer 'may' contain video data */
+
+
/****************************
* Vertex Shaders Declaration
@@ -198,21 +230,32 @@
D3DDECLUSAGE_SAMPLE = 13
} D3DDECLUSAGE;
-#define MAXD3DDECLUSAGE D3DDECLUSAGE_SAMPLE
-#define MAXD3DDECLUSAGEINDEX 15
-#define MAXD3DDECLLENGTH 64
+/* MSDN is quite confussing at this point...
+http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/directx9_c/directx/graphics/reference/d3d/constants/OTHER_D3D.asp
+says D3DMAX, and D3DMAXDECLUSAGE = D3DDECLUSAGE_DEPTH
+http://msdn.microsoft.com/library/default.asp?url=/archive/en-us/directx9_c_summer_03/directx/graphics/reference/d3d/constants/other_d3d.asp
+says MAXD3D, and D3DDECLUSAGE_SAMPLE
+
+So both are defined
+*/
+
+#define D3DMAXDECLUSAGE D3DDECLUSAGE_SAMPLE
+#define D3DMAXDECLUSAGEINDEX 15
+#define D3DMAXDECLLENGTH 18
+#define D3DMAXDECLUSAGE_DX8 D3DDECLUSAGE_TEXCOORD
typedef enum _D3DDECLMETHOD {
- D3DDECLMETHOD_DEFAULT = 0,
- D3DDECLMETHOD_PARTIALU,
- D3DDECLMETHOD_PARTIALV,
- D3DDECLMETHOD_CROSSUV,
- D3DDECLMETHOD_UV,
- D3DDECLMETHOD_LOOKUP,
- D3DDECLMETHOD_LOOKUPPRESAMPLED
+ D3DDECLMETHOD_DEFAULT = 0,
+ D3DDECLMETHOD_PARTIALU = 1,
+ D3DDECLMETHOD_PARTIALV = 2,
+ D3DDECLMETHOD_CROSSUV = 3,
+ D3DDECLMETHOD_UV = 4,
+ D3DDECLMETHOD_LOOKUP = 5,
+ D3DDECLMETHOD_LOOKUPPRESAMPLED = 6
} D3DDECLMETHOD;
-#define MAXD3DDECLMETHOD D3DDECLMETHOD_LOOKUPPRESAMPLED
+
+#define D3DMAXDECLMETHOD D3DDECLMETHOD_LOOKUPPRESAMPLED
typedef enum _D3DDECLTYPE {
D3DDECLTYPE_FLOAT1 = 0,
@@ -236,7 +279,7 @@
D3DDECLTYPE_UNUSED = 17,
} D3DDECLTYPE;
-#define MAXD3DDECLTYPE D3DDECLTYPE_UNUSED
+#define D3DMAXDECLTYPE D3DDECLTYPE_UNUSED
typedef struct _D3DVERTEXELEMENT9 {
WORD Stream;
@@ -247,6 +290,29 @@
BYTE UsageIndex;
} D3DVERTEXELEMENT9, *LPD3DVERTEXELEMENT9;
+
+typedef enum _D3DQUERYTYPE {
+ D3DQUERYTYPE_VCACHE = 4,
+ D3DQUERYTYPE_RESOURCEMANAGER = 5,
+ D3DQUERYTYPE_VERTEXSTATS = 6,
+ D3DQUERYTYPE_EVENT = 8,
+ D3DQUERYTYPE_OCCLUSION = 9,
+ D3DQUERYTYPE_TIMESTAMP = 10,
+ D3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
+ D3DQUERYTYPE_TIMESTAMPFREQ = 12,
+ D3DQUERYTYPE_PIPELINETIMINGS = 13,
+ D3DQUERYTYPE_INTERFACETIMINGS = 14,
+ D3DQUERYTYPE_VERTEXTIMINGS = 15,
+ D3DQUERYTYPE_PIXELTIMINGS = 16,
+ D3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
+ D3DQUERYTYPE_CACHEUTILIZATION = 18
+} D3DQUERYTYPE;
+
+#define D3DISSUE_BEGIN (1 << 1)
+#define D3DISSUE_END (1 << 0)
+#define D3DGETDATA_FLUSH (1 << 0)
+
+
#define D3DDECL_END() {0xFF,0,D3DDECLTYPE_UNUSED,0,0,0}
#define D3DDP_MAXTEXCOORD 8
@@ -582,6 +648,8 @@
D3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff
} D3DBACKBUFFER_TYPE;
+#define D3DPRESENT_BACK_BUFFER_MAX 3L
+
typedef enum _D3DBASISTYPE {
D3DBASIS_BEZIER = 0,
D3DBASIS_BSPLINE = 1,
@@ -658,6 +726,15 @@
D3DDMT_FORCE_DWORD = 0x7fffffff
} D3DDEBUGMONITORTOKENS;
+typedef enum _D3DDEGREETYPE {
+ D3DDEGREE_LINEAR = 1,
+ D3DDEGREE_QUADRATIC = 2,
+ D3DDEGREE_CUBIC = 3,
+ D3DDEGREE_QUINTIC = 5,
+
+ D3DDEGREE_FORCE_DWORD = 0x7fffffff
+} D3DDEGREETYPE;
+
typedef enum _D3DDEVTYPE {
D3DDEVTYPE_HAL = 1,
D3DDEVTYPE_REF = 2,
@@ -697,6 +774,13 @@
D3DFMT_A8 = 28,
D3DFMT_A8R3G3B2 = 29,
D3DFMT_X4R4G4B4 = 30,
+ D3DFMT_A2B10G10R10 = 31,
+ D3DFMT_A8B8G8R8 = 32,
+ D3DFMT_X8B8G8R8 = 33,
+ D3DFMT_G16R16 = 34,
+ D3DFMT_A2R10G10B10 = 35,
+ D3DFMT_A16B16G16R16 = 36,
+
D3DFMT_A8P8 = 40,
D3DFMT_P8 = 41,
@@ -711,6 +795,7 @@
D3DFMT_Q8W8V8U8 = 63,
D3DFMT_V16U16 = 64,
D3DFMT_W11V11U10 = 65,
+ D3DFMT_A2W10V10U10 = 67,
D3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
D3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
@@ -719,18 +804,35 @@
D3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'),
D3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'),
D3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),
+ D3DFMT_MULTI2_ARGB = MAKEFOURCC('M', 'E', 'T', '1'),
+ D3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'),
+ D3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'),
D3DFMT_D16_LOCKABLE = 70,
D3DFMT_D32 = 71,
D3DFMT_D15S1 = 73,
- D3DFMT_D24S8 = 75,
- D3DFMT_D16 = 80,
D3DFMT_D24X8 = 77,
D3DFMT_D24X4S4 = 79,
+ D3DFMT_D16 = 80,
+ D3DFMT_D32F_LOCKABLE = 82,
+ D3DFMT_D24FS8 = 83,
D3DFMT_VERTEXDATA = 100,
D3DFMT_INDEX16 = 101,
D3DFMT_INDEX32 = 102,
+ D3DFMT_Q16W16V16U16 = 110,
+ /* Flaoting point formats */
+ D3DFMT_R16F = 111,
+ D3DFMT_G16R16F = 112,
+ D3DFMT_A16B16G16R16F = 113,
+
+ /* IEEE formats */
+ D3DFMT_R32F = 114,
+ D3DFMT_G32R32F = 115,
+ D3DFMT_A32B32G32R32F = 116,
+
+ D3DFMT_CxV8U8 = 117,
+
D3DFMT_FORCE_DWORD = 0xFFFFFFFF
} D3DFORMAT;
@@ -753,6 +855,7 @@
typedef enum _D3DMULTISAMPLE_TYPE {
D3DMULTISAMPLE_NONE = 0,
+ D3DMULTISAMPLE_NONMASKABLE = 1,
D3DMULTISAMPLE_2_SAMPLES = 2,
D3DMULTISAMPLE_3_SAMPLES = 3,
D3DMULTISAMPLE_4_SAMPLES = 4,
@@ -772,6 +875,7 @@
D3DMULTISAMPLE_FORCE_DWORD = 0xffffffff
} D3DMULTISAMPLE_TYPE;
+#if 0
typedef enum _D3DORDERTYPE {
D3DORDER_LINEAR = 1,
D3DORDER_QUADRATIC = 2,
@@ -780,7 +884,7 @@
D3DORDER_FORCE_DWORD = 0x7fffffff
} D3DORDERTYPE;
-
+#endif
typedef enum _D3DPATCHEDGESTYLE {
D3DPATCHEDGE_DISCRETE = 0,
D3DPATCHEDGE_CONTINUOUS = 1,
@@ -812,7 +916,6 @@
D3DRS_ZENABLE = 7,
D3DRS_FILLMODE = 8,
D3DRS_SHADEMODE = 9,
- D3DRS_LINEPATTERN = 10,
D3DRS_ZWRITEENABLE = 14,
D3DRS_ALPHATESTENABLE = 15,
D3DRS_LASTPIXEL = 16,
@@ -826,14 +929,11 @@
D3DRS_ALPHABLENDENABLE = 27,
D3DRS_FOGENABLE = 28,
D3DRS_SPECULARENABLE = 29,
- D3DRS_ZVISIBLE = 30,
D3DRS_FOGCOLOR = 34,
D3DRS_FOGTABLEMODE = 35,
D3DRS_FOGSTART = 36,
D3DRS_FOGEND = 37,
D3DRS_FOGDENSITY = 38,
- D3DRS_EDGEANTIALIAS = 40,
- D3DRS_ZBIAS = 47,
D3DRS_RANGEFOGENABLE = 48,
D3DRS_STENCILENABLE = 52,
D3DRS_STENCILFAIL = 53,
@@ -865,7 +965,6 @@
D3DRS_EMISSIVEMATERIALSOURCE = 148,
D3DRS_VERTEXBLEND = 151,
D3DRS_CLIPPLANEENABLE = 152,
- D3DRS_SOFTWAREVERTEXPROCESSING = 153,
D3DRS_POINTSIZE = 154,
D3DRS_POINTSIZE_MIN = 155,
D3DRS_POINTSPRITEENABLE = 156,
@@ -876,15 +975,14 @@
D3DRS_MULTISAMPLEANTIALIAS = 161,
D3DRS_MULTISAMPLEMASK = 162,
D3DRS_PATCHEDGESTYLE = 163,
- D3DRS_PATCHSEGMENTS = 164,
D3DRS_DEBUGMONITORTOKEN = 165,
D3DRS_POINTSIZE_MAX = 166,
D3DRS_INDEXEDVERTEXBLENDENABLE = 167,
D3DRS_COLORWRITEENABLE = 168,
D3DRS_TWEENFACTOR = 170,
D3DRS_BLENDOP = 171,
- D3DRS_POSITIONORDER = 172,
- D3DRS_NORMALORDER = 173,
+ D3DRS_POSITIONDEGREE = 172,
+ D3DRS_NORMALDEGREE = 173,
D3DRS_SCISSORTESTENABLE = 174,
D3DRS_SLOPESCALEDEPTHBIAS = 175,
D3DRS_ANTIALIASEDLINEENABLE = 176,
@@ -934,6 +1032,8 @@
D3DRTYPE_FORCE_DWORD = 0x7fffffff
} D3DRESOURCETYPE;
+#define D3DRTYPECOUNT (D3DRTYPE_INDEXBUFFER+1)
+
typedef enum _D3DSHADEMODE {
D3DSHADE_FLAT = 1,
D3DSHADE_GOURAUD = 2,
@@ -967,8 +1067,6 @@
D3DSWAPEFFECT_DISCARD = 1,
D3DSWAPEFFECT_FLIP = 2,
D3DSWAPEFFECT_COPY = 3,
- D3DSWAPEFFECT_COPY_VSYNC = 4,
-
D3DSWAPEFFECT_FORCE_DWORD = 0xFFFFFFFF
} D3DSWAPEFFECT;
@@ -1037,6 +1135,7 @@
D3DTSS_BUMPENVMAT10 = 9,
D3DTSS_BUMPENVMAT11 = 10,
D3DTSS_TEXCOORDINDEX = 11,
+#if 1 /* TODO: remove once samplerstates are implemented. */
D3DTSS_ADDRESSU = 13,
D3DTSS_ADDRESSV = 14,
D3DTSS_BORDERCOLOR = 15,
@@ -1046,6 +1145,7 @@
D3DTSS_MIPMAPLODBIAS = 19,
D3DTSS_MAXMIPLEVEL = 20,
D3DTSS_MAXANISOTROPY = 21,
+#endif
D3DTSS_BUMPENVLSCALE = 22,
D3DTSS_BUMPENVLOFFSET = 23,
D3DTSS_TEXTURETRANSFORMFLAGS = 24,
@@ -1172,6 +1272,75 @@
DWORD BehaviorFlags;
} D3DDEVICE_CREATION_PARAMETERS;
+typedef struct _D3DDEVINFO_D3D9BANDWIDTHTIMINGS {
+ float MaxBandwidthUtilized;
+ float FrontEndUploadMemoryUtilizedPercent;
+ float VertexRateUtilizedPercent;
+ float TriangleSetupRateUtilizedPercent;
+ float FillRateUtilizedPercent;
+} D3DDEVINFO_D3D9BANDWIDTHTIMINGS;
+
+typedef struct _D3DDEVINFO_D3D9CACHEUTILIZATION {
+ float TextureCacheHitRate;
+ float PostTransformVertexCacheHitRate;
+} D3DDEVINFO_D3D9CACHEUTILIZATION;
+
+typedef struct _D3DDEVINFO_D3D9INTERFACETIMINGS {
+ float WaitingForGPUToUseApplicationResourceTimePercent;
+ float WaitingForGPUToAcceptMoreCommandsTimePercent;
+ float WaitingForGPUToStayWithinLatencyTimePercent;
+ float WaitingForGPUExclusiveResourceTimePercent;
+ float WaitingForGPUOtherTimePercent;
+} D3DDEVINFO_D3D9INTERFACETIMINGS;
+
+typedef struct _D3DDEVINFO_D3D9PIPELINETIMINGS {
+ float VertexProcessingTimePercent;
+ float PixelProcessingTimePercent;
+ float OtherGPUProcessingTimePercent;
+ float GPUIdleTimePercent;
+} D3DDEVINFO_D3D9PIPELINETIMINGS;
+
+typedef struct _D3DDEVINFO_D3D9STAGETIMINGS {
+ float MemoryProcessingPercent;
+ float ComputationProcessingPercent;
+} D3DDEVINFO_D3D9STAGETIMINGS;
+
+
+/* Vertex cache optimization hints. */
+typedef struct D3DDEVINFO_VCACHE {
+ /* Must be a 4 char code FOURCC (e.g. CACH) */
+ DWORD Pattern;
+ /* 0 to get the longest strips, 1 vertex cache */
+ DWORD OptMethod;
+ /* Cache size to use (only valid if OptMethod==1) */
+ DWORD CacheSize;
+ /* internal for deciding when to restart strips, non user modifyable (only valid if OptMethod==1) */
+ DWORD MagicNumber;
+} D3DDEVINFO_VCACHE;
+
+typedef struct D3DRESOURCESTATS {
+ BOOL bThrashing;
+ DWORD ApproxBytesDownloaded;
+ DWORD NumEvicts;
+ DWORD NumVidCreates;
+ DWORD LastPri;
+ DWORD NumUsed;
+ DWORD NumUsedInVidMem;
+ DWORD WorkingSet;
+ DWORD WorkingSetBytes;
+ DWORD TotalManaged;
+ DWORD TotalBytes;
+} D3DRESOURCESTATS;
+
+typedef struct _D3DDEVINFO_D3DRESOURCEMANAGER {
+ D3DRESOURCESTATS stats[D3DRTYPECOUNT];
+} D3DDEVINFO_D3DRESOURCEMANAGER;
+
+typedef struct _D3DDEVINFO_D3DVERTEXSTATS {
+ DWORD NumRenderedTriangles;
+ DWORD NumExtraClippingTriangles;
+} D3DDEVINFO_D3DVERTEXSTATS;
+
typedef struct _D3DDISPLAYMODE {
UINT Width;
UINT Height;
@@ -1296,7 +1465,7 @@
UINT Height;
UINT Stride;
D3DBASISTYPE Basis;
- D3DORDERTYPE Order;
+ D3DDEGREETYPE Degree;
} D3DRECTPATCH_INFO;
typedef struct _D3DSURFACE_DESC {
@@ -1314,7 +1483,7 @@
UINT StartVertexOffset;
UINT NumVertices;
D3DBASISTYPE Basis;
- D3DORDERTYPE Order;
+ D3DDEGREETYPE Degree;
} D3DTRIPATCH_INFO;
typedef struct _D3DVERTEXBUFFER_DESC {
@@ -1346,12 +1515,4 @@
UINT Depth;
} D3DVOLUME_DESC;
-typedef enum _D3DQUERYTYPE {
- D3DQUERYTYPE_VCACHE = 4,
- D3DQUERYTYPE_RESOURCEMANAGER = 5,
- D3DQUERYTYPE_VERTEXSTATS = 6,
- D3DQUERYTYPE_EVENT = 8,
- D3DQUERYTYPE_OCCLUSION = 9
-} D3DQUERYTYPE;
-
#endif /* __WINE_D3D9TYPES_H */
diff --git a/include/wine/wined3d_interface.h b/include/wine/wined3d_interface.h
index 8cf7b1e..684f5a3 100644
--- a/include/wine/wined3d_interface.h
+++ b/include/wine/wined3d_interface.h
@@ -31,6 +31,7 @@
# error You must include d3d8.h or d3d9.h header to use this header
#endif
+#include "wined3d_types.h"
/*****************************************************************
* THIS FILE MUST NOT CONTAIN X11 or MESA DEFINES
* PLEASE USE wine/wined3d_gl.h INSTEAD
@@ -114,113 +115,6 @@
0x905ddbac, 0x6f30, 0x11d9, 0xc6, 0x87, 0x0, 0x4, 0x61, 0x42, 0xc1, 0x4f);
-
-/*****************************************************************************
- * WineD3D Structures to be used when d3d8 and d3d9 are incompatible
- */
-
-typedef enum _WINED3DSAMPLERSTATETYPE {
- WINED3DSAMP_ADDRESSU = 1,
- WINED3DSAMP_ADDRESSV = 2,
- WINED3DSAMP_ADDRESSW = 3,
- WINED3DSAMP_BORDERCOLOR = 4,
- WINED3DSAMP_MAGFILTER = 5,
- WINED3DSAMP_MINFILTER = 6,
- WINED3DSAMP_MIPFILTER = 7,
- WINED3DSAMP_MIPMAPLODBIAS = 8,
- WINED3DSAMP_MAXMIPLEVEL = 9,
- WINED3DSAMP_MAXANISOTROPY = 10,
- WINED3DSAMP_SRGBTEXTURE = 11,
- WINED3DSAMP_ELEMENTINDEX = 12,
- WINED3DSAMP_DMAPOFFSET = 13,
-
- WINED3DSAMP_FORCE_DWORD = 0x7fffffff,
-} WINED3DSAMPLERSTATETYPE;
-
-typedef struct _WINED3DADAPTER_IDENTIFIER {
- char *Driver;
- char *Description;
- char *DeviceName;
- LARGE_INTEGER *DriverVersion;
- DWORD *VendorId;
- DWORD *DeviceId;
- DWORD *SubSysId;
- DWORD *Revision;
- GUID *DeviceIdentifier;
- DWORD *WHQLLevel;
-} WINED3DADAPTER_IDENTIFIER;
-
-typedef struct _WINED3DPRESENT_PARAMETERS {
- UINT *BackBufferWidth;
- UINT *BackBufferHeight;
- D3DFORMAT *BackBufferFormat;
- UINT *BackBufferCount;
- D3DMULTISAMPLE_TYPE *MultiSampleType;
- DWORD *MultiSampleQuality;
- D3DSWAPEFFECT *SwapEffect;
- HWND *hDeviceWindow;
- BOOL *Windowed;
- BOOL *EnableAutoDepthStencil;
- D3DFORMAT *AutoDepthStencilFormat;
- DWORD *Flags;
- UINT *FullScreen_RefreshRateInHz;
- UINT *PresentationInterval;
-} WINED3DPRESENT_PARAMETERS;
-
-typedef struct _WINED3DSURFACE_DESC
-{
- D3DFORMAT *Format;
- D3DRESOURCETYPE *Type;
- DWORD *Usage;
- D3DPOOL *Pool;
- UINT *Size;
-
- D3DMULTISAMPLE_TYPE *MultiSampleType;
- DWORD *MultiSampleQuality;
- UINT *Width;
- UINT *Height;
-} WINED3DSURFACE_DESC;
-
-typedef struct _WINED3DVOLUME_DESC
-{
- D3DFORMAT *Format;
- D3DRESOURCETYPE *Type;
- DWORD *Usage;
- D3DPOOL *Pool;
- UINT *Size;
-
- UINT *Width;
- UINT *Height;
- UINT *Depth;
-} WINED3DVOLUME_DESC;
-
-typedef struct _WINED3DVERTEXELEMENT {
- WORD Stream;
- WORD Offset;
- BYTE Type;
- BYTE Method;
- BYTE Usage;
- BYTE UsageIndex;
-} WINED3DVERTEXELEMENT, *LPWINED3DVERTEXELEMENT;
-
-
-typedef enum _WINED3DQUERYTYPE {
- WINED3DQUERYTYPE_VCACHE = 4,
- WINED3DQUERYTYPE_RESOURCEMANAGER = 5,
- WINED3DQUERYTYPE_VERTEXSTATS = 6,
- WINED3DQUERYTYPE_EVENT = 8,
- WINED3DQUERYTYPE_OCCLUSION = 9,
- WINED3DQUERYTYPE_TIMESTAMP = 10,
- WINED3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
- WINED3DQUERYTYPE_TIMESTAMPFREQ = 12,
- WINED3DQUERYTYPE_PIPELINETIMINGS = 13,
- WINED3DQUERYTYPE_INTERFACETIMINGS = 14,
- WINED3DQUERYTYPE_VERTEXTIMINGS = 15,
- WINED3DQUERYTYPE_PIXELTIMINGS = 16,
- WINED3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
- WINED3DQUERYTYPE_CACHEUTILIZATION = 18
-} WINED3DQUERYTYPE;
-
/* The following have differing names, but actually are the same layout. */
/* Also, D3DCAPS8 is a subset of D3DCAPS9 so can be typecase as long as
none of the 9 fields are accessed when the device is d3d8 */
@@ -260,6 +154,7 @@
typedef struct IWineD3DVertexDeclaration IWineD3DVertexDeclaration;
typedef struct IWineD3DVertexShader IWineD3DVertexShader;
typedef struct IWineD3DPixelShader IWineD3DPixelShader;
+typedef struct IWineD3DQuery IWineD3DQuery;
/*****************************************************************************
* Callback functions required for predefining surfaces / stencils
@@ -386,7 +281,7 @@
STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IWineD3DVolumeTexture** ppVolumeTexture, HANDLE* pSharedHandle, IUnknown *parent, D3DCB_CREATEVOLUMEFN pFn) PURE;
STDMETHOD(CreateVolume)(THIS_ UINT Width, UINT Height, UINT Depth, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IWineD3DVolume** ppVolumeTexture, HANDLE* pSharedHandle, IUnknown *parent) PURE;
STDMETHOD(CreateCubeTexture)(THIS_ UINT EdgeLength, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IWineD3DCubeTexture** ppCubeTexture, HANDLE* pSharedHandle, IUnknown *parent, D3DCB_CREATESURFACEFN pFn) PURE;
- STDMETHOD(CreateQuery)(THIS_ WINED3DQUERYTYPE Type, void **ppQuery, IUnknown *pParent);
+ STDMETHOD(CreateQuery)(THIS_ WINED3DQUERYTYPE Type, IWineD3DQuery **ppQuery, IUnknown *pParent);
STDMETHOD(CreateAdditionalSwapChain)(THIS_ WINED3DPRESENT_PARAMETERS* pPresentationParameters, void** pSwapChain, IUnknown* pParent, D3DCB_CREATERENDERTARGETFN pFn, D3DCB_CREATEDEPTHSTENCILSURFACEFN pFn2);
STDMETHOD(CreateVertexDeclaration)(THIS_ CONST VOID* pDeclaration, IWineD3DVertexDeclaration** ppDecl, IUnknown* pParent) PURE;
STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IWineD3DVertexShader** ppShader, IUnknown *pParent) PURE;
@@ -1193,6 +1088,41 @@
#define IWineD3DStateBlock_InitStartupStateBlock(p) (p)->lpVtbl->InitStartupStateBlock(p)
#endif
+/*****************************************************************************
+ * WineD3DQuery interface
+ */
+#define INTERFACE IWineD3DQuery
+DECLARE_INTERFACE_(IWineD3DQuery,IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ /*** IWineD3DQuery methods ***/
+ STDMETHOD(GetParent)(THIS_ IUnknown **pParent) PURE;
+ STDMETHOD(GetDevice)(THIS_ IWineD3DDevice **ppDevice) PURE;
+ STDMETHOD(GetData)(THIS_ void *pData, DWORD dwSize, DWORD dwGetDataFlags) PURE;
+ STDMETHOD_(DWORD,GetDataSize)(THIS) PURE;
+ STDMETHOD_(WINED3DQUERYTYPE, GetType)(THIS) PURE;
+ STDMETHOD(Issue)(THIS_ DWORD dwIssueFlags) PURE;
+
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IWineD3DQuery_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IWineD3DQuery_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IWineD3DQuery_Release(p) (p)->lpVtbl->Release(p)
+/*** IWineD3DQuery methods ***/
+#define IWineD3DQuery_GetParent(p,a) (p)->lpVtbl->GetParent(p,a)
+#define IWineD3DQuery_GetDevice(p,a) (p)->lpVtbl->GetDevice(p,a)
+#define IWineD3DQuery_GetData(p,a,b,c) (p)->lpVtbl->GetData(p,a,b,c)
+#define IWineD3DQuery_GetDataSize(p) (p)->lpVtbl->GetDataSize(p)
+#define IWineD3DQuery_GetType(p) (p)->lpVtbl->GetType(p)
+#define IWineD3DQuery_Issue(p,a) (p)->lpVtbl->Issue(p,a)
+
+#endif
/*****************************************************************************
* IWineD3DVertexShader interface
diff --git a/include/wine/wined3d_types.h b/include/wine/wined3d_types.h
index 06dfdec..0bbf4d2 100644
--- a/include/wine/wined3d_types.h
+++ b/include/wine/wined3d_types.h
@@ -23,36 +23,44 @@
#ifndef __WINE_WINED3D_TYPES_H
#define __WINE_WINED3D_TYPES_H
-typedef struct _D3DVECTOR_3 {
+/* TODO: remove the dependency on d3d9 or d3d8 */
+#if !defined( __WINE_D3D8_H ) && !defined( __WINE_D3D9_H )
+# error You must include d3d8.h or d3d9.h header to use this header
+#endif
+
+#define WINED3D_VSHADER_MAX_CONSTANTS 96
+#define WINED3D_PSHADER_MAX_CONSTANTS 32
+
+typedef struct _WINED3DVECTOR_3 {
float x;
float y;
float z;
-} D3DVECTOR_3;
+} WINED3DVECTOR_3;
-typedef struct _D3DVECTOR_4 {
+typedef struct _WINED3DVECTOR_4 {
float x;
float y;
float z;
float w;
-} D3DVECTOR_4;
+} WINED3DVECTOR_4;
-typedef struct D3DSHADERVECTOR {
+typedef struct WINED3DSHADERVECTOR {
float x;
float y;
float z;
float w;
-} D3DSHADERVECTOR;
+} WINED3DSHADERVECTOR;
-typedef struct D3DSHADERSCALAR {
+typedef struct WINED3DSHADERSCALAR {
float x;
-} D3DSHADERSCALAR;
+} WINED3DSHADERSCALAR;
-typedef D3DSHADERVECTOR VSHADERCONSTANTS8[D3D_VSHADER_MAX_CONSTANTS];
+typedef WINED3DSHADERVECTOR WINEVSHADERCONSTANTS8[WINED3D_VSHADER_MAX_CONSTANTS];
typedef struct VSHADERDATA {
/** Run Time Shader Function Constants */
/*D3DXBUFFER* constants;*/
- VSHADERCONSTANTS8 C;
+ WINEVSHADERCONSTANTS8 C;
/** Shader Code as char ... */
CONST DWORD* code;
UINT codeLength;
@@ -60,24 +68,24 @@
/** temporary here waiting for buffer code */
typedef struct VSHADERINPUTDATA {
- D3DSHADERVECTOR V[17];
-} VSHADERINPUTDATA;
+ WINED3DSHADERVECTOR V[17];
+} WINEVSHADERINPUTDATA;
/** temporary here waiting for buffer code */
typedef struct VSHADEROUTPUTDATA {
- D3DSHADERVECTOR oPos;
- D3DSHADERVECTOR oD[2];
- D3DSHADERVECTOR oT[8];
- D3DSHADERVECTOR oFog;
- D3DSHADERVECTOR oPts;
-} VSHADEROUTPUTDATA;
+ WINED3DSHADERVECTOR oPos;
+ WINED3DSHADERVECTOR oD[2];
+ WINED3DSHADERVECTOR oT[8];
+ WINED3DSHADERVECTOR oFog;
+ WINED3DSHADERVECTOR oPts;
+} WINEVSHADEROUTPUTDATA;
-typedef D3DSHADERVECTOR PSHADERCONSTANTS8[D3D_PSHADER_MAX_CONSTANTS];
+typedef WINED3DSHADERVECTOR WINEPSHADERCONSTANTS8[WINED3D_PSHADER_MAX_CONSTANTS];
typedef struct PSHADERDATA {
/** Run Time Shader Function Constants */
/*D3DXBUFFER* constants;*/
- PSHADERCONSTANTS8 C;
+ WINEPSHADERCONSTANTS8 C;
/** Shader Code as char ... */
CONST DWORD* code;
UINT codeLength;
@@ -85,16 +93,449 @@
/** temporary here waiting for buffer code */
typedef struct PSHADERINPUTDATA {
- D3DSHADERVECTOR V[2];
- D3DSHADERVECTOR T[8];
- D3DSHADERVECTOR S[16];
+ WINED3DSHADERVECTOR V[2];
+ WINED3DSHADERVECTOR T[8];
+ WINED3DSHADERVECTOR S[16];
/*D3DSHADERVECTOR R[12];*/
-} PSHADERINPUTDATA;
+} WINEPSHADERINPUTDATA;
/** temporary here waiting for buffer code */
typedef struct PSHADEROUTPUTDATA {
- D3DSHADERVECTOR oC[4];
- D3DSHADERVECTOR oDepth;
-} PSHADEROUTPUTDATA;
+ WINED3DSHADERVECTOR oC[4];
+ WINED3DSHADERVECTOR oDepth;
+} WINEPSHADEROUTPUTDATA;
+
+/*****************************************************************************
+ * WineD3D Structures to be used when d3d8 and d3d9 are incompatible
+ */
+
+typedef enum _WINED3DDEGREETYPE {
+ WINED3DDEGREE_LINEAR = 1,
+ WINED3DDEGREE_QUADRATIC = 2,
+ WINED3DDEGREE_CUBIC = 3,
+ WINED3DDEGREE_QUINTIC = 5,
+
+ WINED3DDEGREE_FORCE_DWORD = 0x7fffffff
+} WINED3DDEGREETYPE;
+
+
+typedef enum _WINED3DFORMAT {
+ WINED3DFMT_UNKNOWN = 0,
+
+ WINED3DFMT_R8G8B8 = 20,
+ WINED3DFMT_A8R8G8B8 = 21,
+ WINED3DFMT_X8R8G8B8 = 22,
+ WINED3DFMT_R5G6B5 = 23,
+ WINED3DFMT_X1R5G5B5 = 24,
+ WINED3DFMT_A1R5G5B5 = 25,
+ WINED3DFMT_A4R4G4B4 = 26,
+ WINED3DFMT_R3G3B2 = 27,
+ WINED3DFMT_A8 = 28,
+ WINED3DFMT_A8R3G3B2 = 29,
+ WINED3DFMT_X4R4G4B4 = 30,
+ WINED3DFMT_A2B10G10R10 = 31,
+ WINED3DFMT_A8B8G8R8 = 32,
+ WINED3DFMT_X8B8G8R8 = 33,
+ WINED3DFMT_G16R16 = 34,
+ WINED3DFMT_A2R10G10B10 = 35,
+ WINED3DFMT_A16B16G16R16 = 36,
+
+
+ WINED3DFMT_A8P8 = 40,
+ WINED3DFMT_P8 = 41,
+
+ WINED3DFMT_L8 = 50,
+ WINED3DFMT_A8L8 = 51,
+ WINED3DFMT_A4L4 = 52,
+
+ WINED3DFMT_V8U8 = 60,
+ WINED3DFMT_L6V5U5 = 61,
+ WINED3DFMT_X8L8V8U8 = 62,
+ WINED3DFMT_Q8W8V8U8 = 63,
+ WINED3DFMT_V16U16 = 64,
+ WINED3DFMT_W11V11U10 = 65,
+ WINED3DFMT_A2W10V10U10 = 67,
+
+ WINED3DFMT_UYVY = MAKEFOURCC('U', 'Y', 'V', 'Y'),
+ WINED3DFMT_YUY2 = MAKEFOURCC('Y', 'U', 'Y', '2'),
+ WINED3DFMT_DXT1 = MAKEFOURCC('D', 'X', 'T', '1'),
+ WINED3DFMT_DXT2 = MAKEFOURCC('D', 'X', 'T', '2'),
+ WINED3DFMT_DXT3 = MAKEFOURCC('D', 'X', 'T', '3'),
+ WINED3DFMT_DXT4 = MAKEFOURCC('D', 'X', 'T', '4'),
+ WINED3DFMT_DXT5 = MAKEFOURCC('D', 'X', 'T', '5'),
+ WINED3DFMT_MULTI2_ARGB = MAKEFOURCC('M', 'E', 'T', '1'),
+ WINED3DFMT_G8R8_G8B8 = MAKEFOURCC('G', 'R', 'G', 'B'),
+ WINED3DFMT_R8G8_B8G8 = MAKEFOURCC('R', 'G', 'B', 'G'),
+
+ WINED3DFMT_D16_LOCKABLE = 70,
+ WINED3DFMT_D32 = 71,
+ WINED3DFMT_D15S1 = 73,
+ WINED3DFMT_D24S8 = 75,
+ WINED3DFMT_D24X8 = 77,
+ WINED3DFMT_D24X4S4 = 79,
+ WINED3DFMT_D16 = 80,
+ WINED3DFMT_D32F_LOCKABLE = 82,
+ WINED3DFMT_D24FS8 = 83,
+
+ WINED3DFMT_VERTEXDATA = 100,
+ WINED3DFMT_INDEX16 = 101,
+ WINED3DFMT_INDEX32 = 102,
+ WINED3DFMT_Q16W16V16U16 = 110,
+ /* Flaoting point formats */
+ WINED3DFMT_R16F = 111,
+ WINED3DFMT_G16R16F = 112,
+ WINED3DFMT_A16B16G16R16F = 113,
+
+ /* IEEE formats */
+ WINED3DFMT_R32F = 114,
+ WINED3DFMT_G32R32F = 115,
+ WINED3DFMT_A32B32G32R32F = 116,
+
+ WINED3DFMT_CxV8U8 = 117,
+
+
+ WINED3DFMT_FORCE_DWORD = 0xFFFFFFFF
+} WINED3DFORMAT;
+
+
+
+
+typedef enum _WINED3DRENDERSTATETYPE {
+ WINED3DRS_ZENABLE = 7,
+ WINED3DRS_FILLMODE = 8,
+ WINED3DRS_SHADEMODE = 9,
+ WINED3DRS_LINEPATTERN = 10,
+ WINED3DRS_ZWRITEENABLE = 14,
+ WINED3DRS_ALPHATESTENABLE = 15,
+ WINED3DRS_LASTPIXEL = 16,
+ WINED3DRS_SRCBLEND = 19,
+ WINED3DRS_DESTBLEND = 20,
+ WINED3DRS_CULLMODE = 22,
+ WINED3DRS_ZFUNC = 23,
+ WINED3DRS_ALPHAREF = 24,
+ WINED3DRS_ALPHAFUNC = 25,
+ WINED3DRS_DITHERENABLE = 26,
+ WINED3DRS_ALPHABLENDENABLE = 27,
+ WINED3DRS_FOGENABLE = 28,
+ WINED3DRS_SPECULARENABLE = 29,
+ WINED3DRS_ZVISIBLE = 30,
+ WINED3DRS_FOGCOLOR = 34,
+ WINED3DRS_FOGTABLEMODE = 35,
+ WINED3DRS_FOGSTART = 36,
+ WINED3DRS_FOGEND = 37,
+ WINED3DRS_FOGDENSITY = 38,
+ WINED3DRS_EDGEANTIALIAS = 40,
+ WINED3DRS_ZBIAS = 47,
+ WINED3DRS_RANGEFOGENABLE = 48,
+ WINED3DRS_STENCILENABLE = 52,
+ WINED3DRS_STENCILFAIL = 53,
+ WINED3DRS_STENCILZFAIL = 54,
+ WINED3DRS_STENCILPASS = 55,
+ WINED3DRS_STENCILFUNC = 56,
+ WINED3DRS_STENCILREF = 57,
+ WINED3DRS_STENCILMASK = 58,
+ WINED3DRS_STENCILWRITEMASK = 59,
+ WINED3DRS_TEXTUREFACTOR = 60,
+ WINED3DRS_WRAP0 = 128,
+ WINED3DRS_WRAP1 = 129,
+ WINED3DRS_WRAP2 = 130,
+ WINED3DRS_WRAP3 = 131,
+ WINED3DRS_WRAP4 = 132,
+ WINED3DRS_WRAP5 = 133,
+ WINED3DRS_WRAP6 = 134,
+ WINED3DRS_WRAP7 = 135,
+ WINED3DRS_CLIPPING = 136,
+ WINED3DRS_LIGHTING = 137,
+ WINED3DRS_AMBIENT = 139,
+ WINED3DRS_FOGVERTEXMODE = 140,
+ WINED3DRS_COLORVERTEX = 141,
+ WINED3DRS_LOCALVIEWER = 142,
+ WINED3DRS_NORMALIZENORMALS = 143,
+ WINED3DRS_DIFFUSEMATERIALSOURCE = 145,
+ WINED3DRS_SPECULARMATERIALSOURCE = 146,
+ WINED3DRS_AMBIENTMATERIALSOURCE = 147,
+ WINED3DRS_EMISSIVEMATERIALSOURCE = 148,
+ WINED3DRS_VERTEXBLEND = 151,
+ WINED3DRS_CLIPPLANEENABLE = 152,
+ WINED3DRS_SOFTWAREVERTEXPROCESSING = 153,
+ WINED3DRS_POINTSIZE = 154,
+ WINED3DRS_POINTSIZE_MIN = 155,
+ WINED3DRS_POINTSPRITEENABLE = 156,
+ WINED3DRS_POINTSCALEENABLE = 157,
+ WINED3DRS_POINTSCALE_A = 158,
+ WINED3DRS_POINTSCALE_B = 159,
+ WINED3DRS_POINTSCALE_C = 160,
+ WINED3DRS_MULTISAMPLEANTIALIAS = 161,
+ WINED3DRS_MULTISAMPLEMASK = 162,
+ WINED3DRS_PATCHEDGESTYLE = 163,
+ WINED3DRS_PATCHSEGMENTS = 164,
+ WINED3DRS_DEBUGMONITORTOKEN = 165,
+ WINED3DRS_POINTSIZE_MAX = 166,
+ WINED3DRS_INDEXEDVERTEXBLENDENABLE = 167,
+ WINED3DRS_COLORWRITEENABLE = 168,
+ WINED3DRS_TWEENFACTOR = 170,
+ WINED3DRS_BLENDOP = 171,
+ WINED3DRS_POSITIONORDER = 172,
+ WINED3DRS_NORMALORDER = 173,
+ WINED3DRS_POSITIONDEGREE = 172,
+ WINED3DRS_NORMALDEGREE = 173,
+ WINED3DRS_SCISSORTESTENABLE = 174,
+ WINED3DRS_SLOPESCALEDEPTHBIAS = 175,
+ WINED3DRS_ANTIALIASEDLINEENABLE = 176,
+ WINED3DRS_MINTESSELLATIONLEVEL = 178,
+ WINED3DRS_MAXTESSELLATIONLEVEL = 179,
+ WINED3DRS_ADAPTIVETESS_X = 180,
+ WINED3DRS_ADAPTIVETESS_Y = 181,
+ WINED3DRS_ADAPTIVETESS_Z = 182,
+ WINED3DRS_ADAPTIVETESS_W = 183,
+ WINED3DRS_ENABLEADAPTIVETESSELLATION= 184,
+ WINED3DRS_TWOSIDEDSTENCILMODE = 185,
+ WINED3DRS_CCW_STENCILFAIL = 186,
+ WINED3DRS_CCW_STENCILZFAIL = 187,
+ WINED3DRS_CCW_STENCILPASS = 188,
+ WINED3DRS_CCW_STENCILFUNC = 189,
+ WINED3DRS_COLORWRITEENABLE1 = 190,
+ WINED3DRS_COLORWRITEENABLE2 = 191,
+ WINED3DRS_COLORWRITEENABLE3 = 192,
+ WINED3DRS_BLENDFACTOR = 193,
+ WINED3DRS_SRGBWRITEENABLE = 194,
+ WINED3DRS_DEPTHBIAS = 195,
+ WINED3DRS_WRAP8 = 198,
+ WINED3DRS_WRAP9 = 199,
+ WINED3DRS_WRAP10 = 200,
+ WINED3DRS_WRAP11 = 201,
+ WINED3DRS_WRAP12 = 202,
+ WINED3DRS_WRAP13 = 203,
+ WINED3DRS_WRAP14 = 204,
+ WINED3DRS_WRAP15 = 205,
+ WINED3DRS_SEPARATEALPHABLENDENABLE = 206,
+ WINED3DRS_SRCBLENDALPHA = 207,
+ WINED3DRS_DESTBLENDALPHA = 208,
+ WINED3DRS_BLENDOPALPHA = 209,
+
+ WINED3DRS_FORCE_DWORD = 0x7fffffff
+} WINED3DRENDERSTATETYPE;
+
+#define WINEHIGHEST_RENDER_STATE WINED3DRS_BLENDOPALPHA
+ /* Highest D3DRS_ value */
+
+typedef enum _WINED3DSWAPEFFECT {
+ WINED3DSWAPEFFECT_DISCARD = 1,
+ WINED3DSWAPEFFECT_FLIP = 2,
+ WINED3DSWAPEFFECT_COPY = 3,
+ WINED3DSWAPEFFECT_COPY_VSYNC = 4,
+ WINED3DSWAPEFFECT_FORCE_DWORD = 0xFFFFFFFF
+} WINED3DSWAPEFFECT;
+
+
+typedef enum _WINED3DSAMPLERSTATETYPE {
+ WINED3DSAMP_ADDRESSU = 1,
+ WINED3DSAMP_ADDRESSV = 2,
+ WINED3DSAMP_ADDRESSW = 3,
+ WINED3DSAMP_BORDERCOLOR = 4,
+ WINED3DSAMP_MAGFILTER = 5,
+ WINED3DSAMP_MINFILTER = 6,
+ WINED3DSAMP_MIPFILTER = 7,
+ WINED3DSAMP_MIPMAPLODBIAS = 8,
+ WINED3DSAMP_MAXMIPLEVEL = 9,
+ WINED3DSAMP_MAXANISOTROPY = 10,
+ WINED3DSAMP_SRGBTEXTURE = 11,
+ WINED3DSAMP_ELEMENTINDEX = 12,
+ WINED3DSAMP_DMAPOFFSET = 13,
+
+ WINED3DSAMP_FORCE_DWORD = 0x7fffffff,
+} WINED3DSAMPLERSTATETYPE;
+
+typedef struct _WINEDD3DRECTPATCH_INFO {
+ UINT StartVertexOffsetWidth;
+ UINT StartVertexOffsetHeight;
+ UINT Width;
+ UINT Height;
+ UINT Stride;
+ D3DBASISTYPE Basis;
+ WINED3DDEGREETYPE Degree;
+} WINED3DRECTPATCH_INFO;
+
+
+typedef struct _WINED3DADAPTER_IDENTIFIER {
+ char *Driver;
+ char *Description;
+ char *DeviceName;
+ LARGE_INTEGER *DriverVersion;
+ DWORD *VendorId;
+ DWORD *DeviceId;
+ DWORD *SubSysId;
+ DWORD *Revision;
+ GUID *DeviceIdentifier;
+ DWORD *WHQLLevel;
+} WINED3DADAPTER_IDENTIFIER;
+
+typedef struct _WINED3DPRESENT_PARAMETERS {
+ UINT *BackBufferWidth;
+ UINT *BackBufferHeight;
+ D3DFORMAT *BackBufferFormat;
+ UINT *BackBufferCount;
+ D3DMULTISAMPLE_TYPE *MultiSampleType;
+ DWORD *MultiSampleQuality;
+ D3DSWAPEFFECT *SwapEffect;
+ HWND *hDeviceWindow;
+ BOOL *Windowed;
+ BOOL *EnableAutoDepthStencil;
+ D3DFORMAT *AutoDepthStencilFormat;
+ DWORD *Flags;
+ UINT *FullScreen_RefreshRateInHz;
+ UINT *PresentationInterval;
+} WINED3DPRESENT_PARAMETERS;
+
+typedef struct _WINED3DSURFACE_DESC
+{
+ D3DFORMAT *Format;
+ D3DRESOURCETYPE *Type;
+ DWORD *Usage;
+ D3DPOOL *Pool;
+ UINT *Size;
+
+ D3DMULTISAMPLE_TYPE *MultiSampleType;
+ DWORD *MultiSampleQuality;
+ UINT *Width;
+ UINT *Height;
+} WINED3DSURFACE_DESC;
+
+typedef struct _WINED3DVOLUME_DESC
+{
+ D3DFORMAT *Format;
+ D3DRESOURCETYPE *Type;
+ DWORD *Usage;
+ D3DPOOL *Pool;
+ UINT *Size;
+
+ UINT *Width;
+ UINT *Height;
+ UINT *Depth;
+} WINED3DVOLUME_DESC;
+
+typedef struct _WINED3DVERTEXELEMENT {
+ WORD Stream;
+ WORD Offset;
+ BYTE Type;
+ BYTE Method;
+ BYTE Usage;
+ BYTE UsageIndex;
+} WINED3DVERTEXELEMENT, *LPWINED3DVERTEXELEMENT;
+
+
+typedef enum _WINED3DQUERYTYPE {
+ WINED3DQUERYTYPE_VCACHE = 4,
+ WINED3DQUERYTYPE_RESOURCEMANAGER = 5,
+ WINED3DQUERYTYPE_VERTEXSTATS = 6,
+ WINED3DQUERYTYPE_EVENT = 8,
+ WINED3DQUERYTYPE_OCCLUSION = 9,
+ WINED3DQUERYTYPE_TIMESTAMP = 10,
+ WINED3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
+ WINED3DQUERYTYPE_TIMESTAMPFREQ = 12,
+ WINED3DQUERYTYPE_PIPELINETIMINGS = 13,
+ WINED3DQUERYTYPE_INTERFACETIMINGS = 14,
+ WINED3DQUERYTYPE_VERTEXTIMINGS = 15,
+ WINED3DQUERYTYPE_PIXELTIMINGS = 16,
+ WINED3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
+ WINED3DQUERYTYPE_CACHEUTILIZATION = 18
+} WINED3DQUERYTYPE;
+
+#define WINED3DISSUE_BEGIN (1 << 1)
+#define WINED3DISSUE_END (1 << 0)
+#define WINED3DGETDATA_FLUSH (1 << 0)
+
+typedef struct _WINED3DDEVICE_CREATION_PARAMETERS {
+ UINT AdapterOrdinal;
+ D3DDEVTYPE DeviceType;
+ HWND hFocusWindow;
+ DWORD BehaviorFlags;
+} WINED3DDEVICE_CREATION_PARAMETERS;
+
+typedef struct _WINED3DDEVINFO_BANDWIDTHTIMINGS {
+ float MaxBandwidthUtilized;
+ float FrontEndUploadMemoryUtilizedPercent;
+ float VertexRateUtilizedPercent;
+ float TriangleSetupRateUtilizedPercent;
+ float FillRateUtilizedPercent;
+} WINED3DDEVINFO_BANDWIDTHTIMINGS;
+
+typedef struct _WINED3DDEVINFO_CACHEUTILIZATION {
+ float TextureCacheHitRate;
+ float PostTransformVertexCacheHitRate;
+} WINED3DDEVINFO_CACHEUTILIZATION;
+
+typedef struct _WINED3DDEVINFO_INTERFACETIMINGS {
+ float WaitingForGPUToUseApplicationResourceTimePercent;
+ float WaitingForGPUToAcceptMoreCommandsTimePercent;
+ float WaitingForGPUToStayWithinLatencyTimePercent;
+ float WaitingForGPUExclusiveResourceTimePercent;
+ float WaitingForGPUOtherTimePercent;
+} WINED3DDEVINFO_INTERFACETIMINGS;
+
+typedef struct _WINED3DDEVINFO_PIPELINETIMINGS {
+ float VertexProcessingTimePercent;
+ float PixelProcessingTimePercent;
+ float OtherGPUProcessingTimePercent;
+ float GPUIdleTimePercent;
+} WINED3DDEVINFO_PIPELINETIMINGS;
+
+typedef struct _WINED3DDEVINFO_STAGETIMINGS {
+ float MemoryProcessingPercent;
+ float ComputationProcessingPercent;
+} WINED3DDEVINFO_STAGETIMINGS;
+
+
+typedef struct WINED3DRESOURCESTATS {
+ BOOL bThrashing;
+ DWORD ApproxBytesDownloaded;
+ DWORD NumEvicts;
+ DWORD NumVidCreates;
+ DWORD LastPri;
+ DWORD NumUsed;
+ DWORD NumUsedInVidMem;
+ DWORD WorkingSet;
+ DWORD WorkingSetBytes;
+ DWORD TotalManaged;
+ DWORD TotalBytes;
+} WINED3DRESOURCESTATS;
+
+typedef enum _WINED3DRESOURCETYPE {
+ WINED3DRTYPE_SURFACE = 1,
+ WINED3DRTYPE_VOLUME = 2,
+ WINED3DRTYPE_TEXTURE = 3,
+ WINED3DRTYPE_VOLUMETEXTURE = 4,
+ WINED3DRTYPE_CUBETEXTURE = 5,
+ WINED3DRTYPE_VERTEXBUFFER = 6,
+ WINED3DRTYPE_INDEXBUFFER = 7,
+
+ WINED3DRTYPE_FORCE_DWORD = 0x7fffffff
+} WINED3DRESOURCETYPE;
+
+#define WINED3DRTYPECOUNT (WINED3DRTYPE_INDEXBUFFER+1)
+
+typedef struct _WINED3DDEVINFO_RESOURCEMANAGER {
+ WINED3DRESOURCESTATS stats[WINED3DRTYPECOUNT];
+} WINED3DDEVINFO_RESOURCEMANAGER;
+
+typedef struct _WINED3DDEVINFO_VERTEXSTATS {
+ DWORD NumRenderedTriangles;
+ DWORD NumExtraClippingTriangles;
+} WINED3DDEVINFO_VERTEXSTATS;
+
+
+/*Vertex cache optimization hints.*/
+typedef struct WINED3DDEVINFO_VCACHE {
+ /*Must be a 4 char code FOURCC (e.g. CACH)*/
+ DWORD Pattern;
+ /*0 to get the longest strips, 1 vertex cache*/
+ DWORD OptMethod;
+ /*Cache size to use (only valid if OptMethod==1) */
+ DWORD CacheSize;
+ /*internal for deciding when to restart strips, non user modifyable (only valid if OptMethod==1)*/
+ DWORD MagicNumber;
+} WINED3DDEVINFO_VCACHE;
+
+
#endif