wined3d: Add WINED3DTEXOPCAPS flags and use them.

This commit is contained in:
H. Verbeet 2007-02-14 23:30:46 +01:00 committed by Alexandre Julliard
parent 1282b43302
commit ea683407af
3 changed files with 78 additions and 28 deletions

View File

@ -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);

View File

@ -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"

View File

@ -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 */