[D3D 54] Handle more blend states
Christian Costa
titan.costa at wanadoo.fr
Thu Dec 26 17:36:04 CST 2002
Modified files :
dlls/ddraw/mesa.c
Changelog :
Handle more blend states.
Christian Costa titan.costa at wanadoo.fr
-------------- next part --------------
--- /home/titan/winebase/wine/dlls/ddraw/mesa.c Thu Dec 26 12:48:33 2002
+++ mesa.c Fri Dec 27 00:32:21 2002
@@ -197,28 +197,72 @@
case D3DRENDERSTATE_SRCBLEND: /* 19 */
switch ((D3DBLEND) dwRenderState) {
+ case D3DBLEND_ZERO:
+ rs->src = GL_ZERO;
+ break;
case D3DBLEND_ONE:
rs->src = GL_ONE;
break;
case D3DBLEND_SRCALPHA:
rs->src = GL_SRC_ALPHA;
break;
+ case D3DBLEND_INVSRCALPHA:
+ rs->src = GL_ONE_MINUS_SRC_ALPHA;
+ break;
+ case D3DBLEND_DESTALPHA:
+ rs->src = GL_DST_ALPHA;
+ break;
+ case D3DBLEND_INVDESTALPHA:
+ rs->src = GL_ONE_MINUS_DST_ALPHA;
+ break;
+ case D3DBLEND_DESTCOLOR:
+ rs->src = GL_DST_COLOR;
+ break;
+ case D3DBLEND_INVDESTCOLOR:
+ rs->src = GL_ONE_MINUS_DST_COLOR;
+ break;
+ case D3DBLEND_SRCCOLOR:
+ case D3DBLEND_INVSRCCOLOR:
+ /* Cannot be supported with OpenGL */
+ break;
default:
- ERR("Unhandled blend mode %ld !\n",dwRenderState);
+ ERR("Unhandled src blend mode %ld !\n",dwRenderState);
}
glBlendFunc(rs->src, rs->dst);
break;
case D3DRENDERSTATE_DESTBLEND: /* 20 */
switch ((D3DBLEND) dwRenderState) {
+ case D3DBLEND_ZERO:
+ rs->dst = GL_ZERO;
+ break;
case D3DBLEND_ONE:
rs->dst = GL_ONE;
break;
+ case D3DBLEND_SRCCOLOR:
+ rs->dst = GL_SRC_COLOR;
+ break;
+ case D3DBLEND_INVSRCCOLOR:
+ rs->dst = GL_ONE_MINUS_SRC_COLOR;
+ break;
+ case D3DBLEND_SRCALPHA:
+ rs->dst = GL_SRC_ALPHA;
+ break;
case D3DBLEND_INVSRCALPHA:
rs->dst = GL_ONE_MINUS_SRC_ALPHA;
break;
+ case D3DBLEND_DESTALPHA:
+ rs->dst = GL_DST_ALPHA;
+ break;
+ case D3DBLEND_INVDESTALPHA:
+ rs->dst = GL_ONE_MINUS_DST_ALPHA;
+ break;
+ case D3DBLEND_DESTCOLOR:
+ case D3DBLEND_INVDESTCOLOR:
+ /* Cannot be supported with OpenGL */
+ break;
default:
- ERR("Unhandled blend mode %ld !\n",dwRenderState);
+ ERR("Unhandled dest blend mode %ld !\n",dwRenderState);
}
glBlendFunc(rs->src, rs->dst);
break;
More information about the wine-patches
mailing list