[D3D 94] Handle COLORVERTEX state

Lionel Ulmer lionel.ulmer at free.fr
Sun Feb 9 14:33:43 CST 2003


Changelog
 Handle the COLORVERTEX render state

-- 
		 Lionel Ulmer - http://www.bbrox.org/
-------------- next part --------------
--- ../wine_base/dlls/ddraw/mesa.c	Thu Jan 30 22:07:23 2003
+++ dlls/ddraw/mesa.c	Sun Feb  9 21:32:28 2003
@@ -432,6 +432,10 @@
 		glLightModelfv(GL_LIGHT_MODEL_AMBIENT, (float *) light);
 	    } break;
 
+	    case D3DRENDERSTATE_COLORVERTEX:          /* 141 */
+	          /* Nothing to do here.. Only storage matters */
+	          break;
+		  
 	    case D3DRENDERSTATE_LOCALVIEWER:          /* 142 */
 	        if (dwRenderState)
 		    glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);
--- ../wine_base/dlls/ddraw/d3ddevice/mesa.c	Sun Feb  2 12:44:58 2003
+++ dlls/ddraw/d3ddevice/mesa.c	Sun Feb  9 21:27:20 2003
@@ -773,7 +773,8 @@
 
     /* Handle the code for pre-vertex material properties */
     if (vertex_transformed == FALSE) {
-        if (This->state_block.render_state[D3DRENDERSTATE_LIGHTING - 1] == TRUE) {
+        if ((This->state_block.render_state[D3DRENDERSTATE_LIGHTING - 1] == TRUE) &&
+	    (This->state_block.render_state[D3DRENDERSTATE_COLORVERTEX - 1] == TRUE)) {
 	    if ((This->state_block.render_state[D3DRENDERSTATE_DIFFUSEMATERIALSOURCE - 1] != D3DMCS_MATERIAL) ||
 		(This->state_block.render_state[D3DRENDERSTATE_AMBIENTMATERIALSOURCE - 1] != D3DMCS_MATERIAL) ||
 		(This->state_block.render_state[D3DRENDERSTATE_EMISSIVEMATERIALSOURCE - 1] != D3DMCS_MATERIAL) ||
@@ -935,7 +936,8 @@
 
 inline static void handle_diffuse(STATEBLOCK *sb, DWORD *color, BOOLEAN lighted) {
     if ((lighted == FALSE) &&
-	(sb->render_state[D3DRENDERSTATE_LIGHTING - 1] == TRUE)) {
+	(sb->render_state[D3DRENDERSTATE_LIGHTING - 1] == TRUE) &&
+	(sb->render_state[D3DRENDERSTATE_COLORVERTEX - 1] == TRUE)) {
         if (sb->render_state[D3DRENDERSTATE_DIFFUSEMATERIALSOURCE - 1] == D3DMCS_COLOR1) {
 	    glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
 	    handle_diffuse_base(sb, color);
@@ -960,7 +962,8 @@
 
 inline static void handle_specular(STATEBLOCK *sb, DWORD *color, BOOLEAN lighted) {
     if ((lighted == FALSE) &&
-	(sb->render_state[D3DRENDERSTATE_LIGHTING - 1] == TRUE)) {
+	(sb->render_state[D3DRENDERSTATE_LIGHTING - 1] == TRUE) &&
+	(sb->render_state[D3DRENDERSTATE_COLORVERTEX - 1] == TRUE)) {
         if (sb->render_state[D3DRENDERSTATE_DIFFUSEMATERIALSOURCE - 1] == D3DMCS_COLOR2) {
 	    glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
 	    handle_specular_base(sb, color);


More information about the wine-patches mailing list