Module: wine Branch: master Commit: ea683407af76935fe626a04e200f09cbe31c587c URL: http://source.winehq.org/git/wine.git/?a=commit;h=ea683407af76935fe626a04e20...
Author: H. Verbeet hverbeet@gmail.com Date: Wed Feb 14 23:30:46 2007 +0100
wined3d: Add WINED3DTEXOPCAPS flags and use them.
---
dlls/wined3d/directx.c | 56 ++++++++++++++++++++-------------------- dlls/wined3d/wined3d_private.h | 1 + include/wine/wined3d_caps.h | 49 +++++++++++++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 28 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c index 398aca0..c2e8522 100644 --- a/dlls/wined3d/directx.c +++ b/dlls/wined3d/directx.c @@ -2137,48 +2137,48 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter,
*pCaps->FVFCaps = D3DFVFCAPS_PSIZE | 0x0008; /* 8 texture coords */
- *pCaps->TextureOpCaps = D3DTEXOPCAPS_ADD | - D3DTEXOPCAPS_ADDSIGNED | - D3DTEXOPCAPS_ADDSIGNED2X | - D3DTEXOPCAPS_MODULATE | - D3DTEXOPCAPS_MODULATE2X | - D3DTEXOPCAPS_MODULATE4X | - D3DTEXOPCAPS_SELECTARG1 | - D3DTEXOPCAPS_SELECTARG2 | - D3DTEXOPCAPS_DISABLE; + *pCaps->TextureOpCaps = WINED3DTEXOPCAPS_ADD | + WINED3DTEXOPCAPS_ADDSIGNED | + WINED3DTEXOPCAPS_ADDSIGNED2X | + WINED3DTEXOPCAPS_MODULATE | + WINED3DTEXOPCAPS_MODULATE2X | + WINED3DTEXOPCAPS_MODULATE4X | + WINED3DTEXOPCAPS_SELECTARG1 | + WINED3DTEXOPCAPS_SELECTARG2 | + WINED3DTEXOPCAPS_DISABLE;
if (GL_SUPPORT(ARB_TEXTURE_ENV_COMBINE) || GL_SUPPORT(EXT_TEXTURE_ENV_COMBINE) || GL_SUPPORT(NV_TEXTURE_ENV_COMBINE4)) { - *pCaps->TextureOpCaps |= D3DTEXOPCAPS_BLENDDIFFUSEALPHA | - D3DTEXOPCAPS_BLENDTEXTUREALPHA | - D3DTEXOPCAPS_BLENDFACTORALPHA | - D3DTEXOPCAPS_BLENDCURRENTALPHA | - D3DTEXOPCAPS_LERP | - D3DTEXOPCAPS_SUBTRACT; + *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA | + WINED3DTEXOPCAPS_BLENDTEXTUREALPHA | + WINED3DTEXOPCAPS_BLENDFACTORALPHA | + WINED3DTEXOPCAPS_BLENDCURRENTALPHA | + WINED3DTEXOPCAPS_LERP | + WINED3DTEXOPCAPS_SUBTRACT; } if (GL_SUPPORT(ATI_TEXTURE_ENV_COMBINE3) || GL_SUPPORT(NV_TEXTURE_ENV_COMBINE4)) { - *pCaps->TextureOpCaps |= D3DTEXOPCAPS_ADDSMOOTH | - D3DTEXOPCAPS_MULTIPLYADD | - D3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR | - D3DTEXOPCAPS_MODULATECOLOR_ADDALPHA | - D3DTEXOPCAPS_BLENDTEXTUREALPHAPM; + *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_ADDSMOOTH | + WINED3DTEXOPCAPS_MULTIPLYADD | + WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR | + WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA | + WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM; } if (GL_SUPPORT(ARB_TEXTURE_ENV_DOT3)) - *pCaps->TextureOpCaps |= D3DTEXOPCAPS_DOTPRODUCT3; + *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_DOTPRODUCT3;
if (GL_SUPPORT(NV_REGISTER_COMBINERS)) { - *pCaps->TextureOpCaps |= D3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR | - D3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA; + *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR | + WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA; } - - + + #if 0 - *pCaps->TextureOpCaps |= D3DTEXOPCAPS_BUMPENVMAP; + *pCaps->TextureOpCaps |= WINED3DTEXOPCAPS_BUMPENVMAP; /* FIXME: Add - D3DTEXOPCAPS_BUMPENVMAPLUMINANCE - D3DTEXOPCAPS_PREMODULATE */ + WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE + WINED3DTEXOPCAPS_PREMODULATE */ #endif
*pCaps->MaxTextureBlendStages = GL_LIMITS(texture_stages); diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index d32d8de..c20532e 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -41,6 +41,7 @@ #include "wined3d_private_types.h" #include "ddraw.h" #include "wine/wined3d_interface.h" +#include "wine/wined3d_caps.h" #include "wine/wined3d_gl.h" #include "wine/list.h"
diff --git a/include/wine/wined3d_caps.h b/include/wine/wined3d_caps.h new file mode 100644 index 0000000..4bf474b --- /dev/null +++ b/include/wine/wined3d_caps.h @@ -0,0 +1,49 @@ +/* + * Copyright 2007 Henri Verbeet + * + * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef __WINE_WINED3D_CAPS_H +#define __WINE_WINED3D_CAPS_H + +#define WINED3DTEXOPCAPS_DISABLE 0x00000001 +#define WINED3DTEXOPCAPS_SELECTARG1 0x00000002 +#define WINED3DTEXOPCAPS_SELECTARG2 0x00000004 +#define WINED3DTEXOPCAPS_MODULATE 0x00000008 +#define WINED3DTEXOPCAPS_MODULATE2X 0x00000010 +#define WINED3DTEXOPCAPS_MODULATE4X 0x00000020 +#define WINED3DTEXOPCAPS_ADD 0x00000040 +#define WINED3DTEXOPCAPS_ADDSIGNED 0x00000080 +#define WINED3DTEXOPCAPS_ADDSIGNED2X 0x00000100 +#define WINED3DTEXOPCAPS_SUBTRACT 0x00000200 +#define WINED3DTEXOPCAPS_ADDSMOOTH 0x00000400 +#define WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800 +#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000 +#define WINED3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000 +#define WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000 +#define WINED3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000 +#define WINED3DTEXOPCAPS_PREMODULATE 0x00010000 +#define WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000 +#define WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000 +#define WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000 +#define WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000 +#define WINED3DTEXOPCAPS_BUMPENVMAP 0x00200000 +#define WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000 +#define WINED3DTEXOPCAPS_DOTPRODUCT3 0x00800000 +#define WINED3DTEXOPCAPS_MULTIPLYADD 0x01000000 +#define WINED3DTEXOPCAPS_LERP 0x02000000 + +#endif /* __WINE_WINED3D_CAPS_H */