[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49488] branches/soc-2012-swiss_cheese/ source: GPUlighting - thin layer to wrap OpenGL' s Phong-Blinn lighting state functions

Jason Wilkins Jason.A.Wilkins at gmail.com
Wed Aug 1 23:45:32 CEST 2012


Revision: 49488
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49488
Author:   jwilkins
Date:     2012-08-01 21:45:31 +0000 (Wed, 01 Aug 2012)
Log Message:
-----------
GPUlighting - thin layer to wrap OpenGL's Phong-Blinn lighting state functions

Modified Paths:
--------------
    branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/DerivedMesh.c
    branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawarmature.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawmesh.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawobject.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_compatibility.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_buffers.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_deprecated.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_draw.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_extensions.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_lighting.c
    branches/soc-2012-swiss_cheese/source/blender/windowmanager/intern/wm_init_exit.c
    branches/soc-2012-swiss_cheese/source/gameengine/BlenderRoutines/KX_BlenderGL.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/BlenderRoutines/KX_BlenderRenderTools.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/GamePlayer/common/GPC_Canvas.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/KX_Dome.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp

Added Paths:
-----------
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_lighting.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_lighting_glsl.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_lighting_inline.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_lighting_internal.h

Removed Paths:
-------------
    branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_lighting.h

Modified: branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/DerivedMesh.c	2012-08-01 20:44:53 UTC (rev 49487)
+++ branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/DerivedMesh.c	2012-08-01 21:45:31 UTC (rev 49488)
@@ -2937,14 +2937,14 @@
 
 #if 0
 	//UI_ThemeColor(TH_WIRE);
-	glDisable(GL_LIGHTING);
+	gpuDisableLighting();
 	glLineWidth(2.0);
 	dm->drawEdges(dm, 0, 1);
 	glLineWidth(1.0);
-	glEnable(GL_LIGHTING);
+	gpuEnableLighting();
 #endif
 
-	glDisable(GL_LIGHTING);
+	gpuDisableLighting();
 	/* if (GPU_buffer_legacy(dm) ) */ { /* TODO - VBO draw code, not high priority - campbell */
 		DEBUG_VBO("Using legacy code. drawNavMeshColored\n");
 		//glShadeModel(GL_SMOOTH);
@@ -2973,7 +2973,7 @@
 		}
 		gpuEnd();
 	}
-	glEnable(GL_LIGHTING);
+	gpuEnableLighting();
 }
 
 static void navmesh_DM_drawFacesTex(DerivedMesh *dm,

Modified: branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface_draw.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface_draw.c	2012-08-01 20:44:53 UTC (rev 49487)
+++ branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface_draw.c	2012-08-01 21:45:31 UTC (rev 49488)
@@ -1273,7 +1273,7 @@
 	float dir[4], size;
 
 	/* store stuff */
-	glGetMaterialfv(GL_FRONT, GL_DIFFUSE, diff);
+	gpuGetMaterialfv(GL_FRONT, GL_DIFFUSE, diff);
 		
 	/* backdrop */
 	gpuCurrentColor3ubv((unsigned char *)wcol->inner);
@@ -1286,22 +1286,22 @@
 	
 	/* disable blender light */
 	for (a = 0; a < 8; a++) {
-		old[a] = glIsEnabled(GL_LIGHT0 + a);
-		glDisable(GL_LIGHT0 + a);
+		old[a] = gpuIsLightEnabled(a);
+		gpuDisableLight(a);
 	}
 	
 	/* own light */
-	glEnable(GL_LIGHT7);
-	glEnable(GL_LIGHTING);
+	gpuEnableLight(7);
+	gpuEnableLighting();
 	
 	ui_get_but_vectorf(but, dir);
 
 	dir[3] = 0.0f;   /* glLightfv needs 4 args, 0.0 is sun */
-	glLightfv(GL_LIGHT7, GL_POSITION, dir); 
-	glLightfv(GL_LIGHT7, GL_DIFFUSE, diffn); 
-	glLightfv(GL_LIGHT7, GL_SPECULAR, vec0); 
-	glLightf(GL_LIGHT7, GL_CONSTANT_ATTENUATION, 1.0f);
-	glLightf(GL_LIGHT7, GL_LINEAR_ATTENUATION, 0.0f);
+	gpuLightfv(7, GL_POSITION, dir); 
+	gpuLightfv(7, GL_DIFFUSE, diffn); 
+	gpuLightfv(7, GL_SPECULAR, vec0); 
+	gpuLightf(7, GL_CONSTANT_ATTENUATION, 1.0f);
+	gpuLightf(7, GL_LINEAR_ATTENUATION, 0.0f);
 	
 	/* transform to button */
 	glPushMatrix();
@@ -1339,10 +1339,10 @@
 	glShadeModel(GL_FLAT);
 
 	/* restore */
-	glDisable(GL_LIGHTING);
+	gpuDisableLighting();
 	glDisable(GL_CULL_FACE);
 	gpuMaterialfv(GL_FRONT, GL_DIFFUSE, diff); 
-	glDisable(GL_LIGHT7);
+	gpuDisableLight(7);
 	
 	/* AA circle */
 	glEnable(GL_BLEND);
@@ -1358,7 +1358,7 @@
 	/* enable blender light */
 	for (a = 0; a < 8; a++) {
 		if (old[a])
-			glEnable(GL_LIGHT0 + a);
+			gpuEnableLight(a);
 	}
 }
 

Modified: branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawarmature.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawarmature.c	2012-08-01 20:44:53 UTC (rev 49487)
+++ branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawarmature.c	2012-08-01 21:45:31 UTC (rev 49488)
@@ -910,8 +910,8 @@
 
 	if (dt == OB_SOLID) {
 		/* set up solid drawing */
-		glEnable(GL_COLOR_MATERIAL);
-		glEnable(GL_LIGHTING);
+		gpuEnableColorMaterial();
+		gpuEnableLighting();
 
 		glShadeModel(GL_SMOOTH);
 
@@ -1024,8 +1024,8 @@
 	/* restore */
 	if (dt == OB_SOLID) {
 		glShadeModel(GL_FLAT);
-		glDisable(GL_LIGHTING);
-		glDisable(GL_COLOR_MATERIAL);
+		gpuDisableLighting();
+		gpuDisableColorMaterial();
 	}
 
 	glPopMatrix();
@@ -1224,8 +1224,8 @@
 	
 	/* set up solid drawing */
 	if (dt > OB_WIRE) {
-		glEnable(GL_COLOR_MATERIAL);
-		glEnable(GL_LIGHTING);
+		gpuEnableColorMaterial();
+		gpuEnableLighting();
 		
 		if (armflag & ARM_POSEMODE)
 			set_pchan_gpuCurrentColor(PCHAN_COLOR_SOLID, boneflag, constflag);
@@ -1235,8 +1235,8 @@
 		draw_b_bone_boxes(OB_SOLID, pchan, xwidth, length, zwidth);
 		
 		/* disable solid drawing */
-		glDisable(GL_COLOR_MATERIAL);
-		glDisable(GL_LIGHTING);
+		gpuDisableColorMaterial();
+		gpuDisableLighting();
 	}
 	else {	
 		/* wire */
@@ -1352,8 +1352,8 @@
 
 	/* set up solid drawing */
 	if (dt > OB_WIRE) {
-		glEnable(GL_COLOR_MATERIAL);
-		glEnable(GL_LIGHTING);
+		gpuEnableColorMaterial();
+		gpuEnableLighting();
 		UI_ThemeColor(TH_BONE_SOLID);
 	}
 	
@@ -1408,8 +1408,8 @@
 
 	/* disable solid drawing */
 	if (dt > OB_WIRE) {
-		glDisable(GL_COLOR_MATERIAL);
-		glDisable(GL_LIGHTING);
+		gpuDisableColorMaterial();
+		gpuDisableLighting();
 	}
 }
 
@@ -2628,7 +2628,7 @@
 		/* we use color for solid lighting */
 		gpuMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, white);
 
-		glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
+		gpuColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
 
 		glFrontFace((ob->transflag & OB_NEG_SCALE) ? GL_CW : GL_CCW);  /* only for lighting... */
 	}

Modified: branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawmesh.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawmesh.c	2012-08-01 20:44:53 UTC (rev 49487)
+++ branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawmesh.c	2012-08-01 21:45:31 UTC (rev 49488)
@@ -188,7 +188,7 @@
 	data.eh = get_tface_mesh_marked_edge_info(me);
 
 	glEnable(GL_DEPTH_TEST);
-	glDisable(GL_LIGHTING);
+	gpuDisableLighting();
 	bglPolygonOffset(rv3d->dist, 1.0);
 
 	/* Draw (Hidden) Edges */
@@ -335,14 +335,14 @@
 			spec[3] = 1.0;
 
 			gpuMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, spec);
-			glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
+			gpuColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
 			gpuMateriali(GL_FRONT_AND_BACK, GL_SHININESS, CLAMPIS(ma->har, 0, 128));
-			glEnable(GL_LIGHTING);
-			glEnable(GL_COLOR_MATERIAL);
+			gpuEnableLighting();
+			gpuEnableColorMaterial();
 		}
 		else {
-			glDisable(GL_LIGHTING); 
-			glDisable(GL_COLOR_MATERIAL);
+			gpuDisableLighting(); 
+			gpuDisableColorMaterial();
 		}
 
 		c_lit = lit;
@@ -899,8 +899,8 @@
 			gpuMateriali(GL_FRONT_AND_BACK, GL_SHININESS, 0);
 
 			/* bind texture */
-			glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
-			glEnable(GL_COLOR_MATERIAL);
+			gpuColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
+			gpuEnableColorMaterial();
 			glEnable(GL_TEXTURE_2D);
 
 			glBindTexture(GL_TEXTURE_2D, ima->bindcode);
@@ -929,7 +929,7 @@
 
 		/* disable texture */
 		glDisable(GL_TEXTURE_2D);
-		glDisable(GL_COLOR_MATERIAL);
+		gpuDisableColorMaterial();
 
 		/* draw single color */
 		GPU_enable_material(mat_nr, attribs);
@@ -971,7 +971,7 @@
 	if (ob->transflag & OB_NEG_SCALE) glFrontFace(GL_CW);
 	else glFrontFace(GL_CCW);
 
-	glEnable(GL_LIGHTING);
+	gpuEnableLighting();
 
 	{
 		Mesh *me = ob->data;
@@ -1015,9 +1015,9 @@
 	}
 
 	/* reset opengl state */
-	glDisable(GL_COLOR_MATERIAL);
+	gpuDisableColorMaterial();
 	glDisable(GL_TEXTURE_2D);
-	glDisable(GL_LIGHTING);
+	gpuDisableLighting();
 	glBindTexture(GL_TEXTURE_2D, 0);
 	glFrontFace(GL_CCW);
 
@@ -1053,9 +1053,9 @@
 			gpuMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, spec);
 
 			/* diffuse */
-			glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
-			glEnable(GL_LIGHTING);
-			glEnable(GL_COLOR_MATERIAL);
+			gpuColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
+			gpuEnableLighting();
+			gpuEnableColorMaterial();
 		}
 
 		if (do_light) {
@@ -1076,8 +1076,8 @@
 		gpuImmediateUnformat();
 
 		if (do_light) {
-			glDisable(GL_COLOR_MATERIAL);
-			glDisable(GL_LIGHTING);
+			gpuDisableColorMaterial();
+			gpuDisableLighting();
 
 			GPU_disable_material();
 		}

Modified: branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawobject.c	2012-08-01 20:44:53 UTC (rev 49487)
+++ branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawobject.c	2012-08-01 21:45:31 UTC (rev 49488)
@@ -1462,7 +1462,7 @@
 		glScalef(v3d->bundle_size / 0.05f, v3d->bundle_size / 0.05f, v3d->bundle_size / 0.05f);
 
 		if (v3d->drawtype == OB_WIRE) {
-			glDisable(GL_LIGHTING);
+			gpuDisableLighting();
 
 			if (selected) {
 				if (base == BASACT) UI_ThemeColor(TH_ACTIVE);
@@ -1475,7 +1475,7 @@
 
 			drawaxes(0.05f, v3d->bundle_drawtype);
 
-			glEnable(GL_LIGHTING);
+			gpuEnableLighting();
 		}
 		else if (v3d->drawtype > OB_WIRE) {
 			if (v3d->bundle_drawtype == OB_EMPTY_SPHERE) {
@@ -1485,13 +1485,13 @@
 					else UI_ThemeColor(TH_SELECT);
 
 					glLineWidth(2.f);
-					glDisable(GL_LIGHTING);
+					gpuDisableLighting();
 					glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
 
 					draw_bundle_sphere();
 
 					glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
-					glEnable(GL_LIGHTING);
+					gpuEnableLighting();
 					glLineWidth(1.f);
 				}
 
@@ -1501,7 +1501,7 @@
 				draw_bundle_sphere();
 			}
 			else {
-				glDisable(GL_LIGHTING);
+				gpuDisableLighting();
 
 				if (selected) {
 					if (base == BASACT) UI_ThemeColor(TH_ACTIVE);
@@ -1514,7 +1514,7 @@
 
 				drawaxes(0.05f, v3d->bundle_drawtype);
 
-				glEnable(GL_LIGHTING);
+				gpuEnableLighting();
 			}
 		}
 
@@ -1543,7 +1543,7 @@
 				MovieReconstructedCamera *camera = reconstruction->cameras;
 				int a = 0;
 
-				glDisable(GL_LIGHTING);
+				gpuDisableLighting();
 				UI_ThemeColor(TH_CAMERA_PATH);
 				glLineWidth(2.0f);
 
@@ -1554,7 +1554,7 @@
 				gpuEnd();
 
 				glLineWidth(1.0f);
-				glEnable(GL_LIGHTING);
+				gpuEnableLighting();
 			}
 		}
 	}
@@ -1578,9 +1578,9 @@
 	if (v3d->flag2 & V3D_RENDER_OVERRIDE)
 		return;
 
-	glEnable(GL_LIGHTING);
-	glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
-	glEnable(GL_COLOR_MATERIAL);
+	gpuEnableLighting();
+	gpuColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
+	gpuEnableColorMaterial();
 	glShadeModel(GL_SMOOTH);
 
 	tracking_object = tracking->objects.first;
@@ -1593,8 +1593,8 @@
 
 	/* restore */
 	glShadeModel(GL_FLAT);
-	glDisable(GL_COLOR_MATERIAL);
-	glDisable(GL_LIGHTING);
+	gpuDisableColorMaterial();
+	gpuDisableLighting();
 
 	if (!(dflag & DRAW_CONSTCOLOR)) {
 		gpuCurrentColor3ubv(ob_wire_col);
@@ -1650,7 +1650,7 @@
 	BKE_camera_view_frame_ex(scene, cam, cam->drawsize, is_view, scale,
 	                         asp, shift, &drawsize, vec);
 
-	glDisable(GL_LIGHTING);

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list