[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48280] branches/soc-2012-swiss_cheese/ source: Big Commit - Ported Blender/ BGE to use GPU_compatibility for most drawing.

Jason Wilkins Jason.A.Wilkins at gmail.com
Mon Jun 25 19:26:34 CEST 2012


Revision: 48280
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48280
Author:   jwilkins
Date:     2012-06-25 17:26:32 +0000 (Mon, 25 Jun 2012)
Log Message:
-----------
Big Commit - Ported Blender/BGE to use GPU_compatibility for most drawing.

Replaces glBegin/glEnd with gpuBegin/gpuEnd
Replaces client side arrays with gpuDrawArrays/gpuDrawElements/gpuDrawElements
Replaces GLUquadric and other simple geometric primitives with a new primitive library
Replaces display lists with the ability to save geometry buffers and invoke them with glDraw/glRepeat

Not complete, there are still some places where old functions remain.  Especially in test programs and external libraries.
Not tested thoroughly yet!  I've tested a lot, but there are still lots of regressions.

Modified Paths:
--------------
    branches/soc-2012-swiss_cheese/source/blender/blenfont/intern/blf.c
    branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/DerivedMesh.c
    branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/cdderivedmesh.c
    branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/editderivedmesh.c
    branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/subsurf_ccg.c
    branches/soc-2012-swiss_cheese/source/blender/editors/animation/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/animation/anim_channels_defines.c
    branches/soc-2012-swiss_cheese/source/blender/editors/animation/anim_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/animation/anim_markers.c
    branches/soc-2012-swiss_cheese/source/blender/editors/animation/keyframes_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/armature/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/armature/editarmature_sketch.c
    branches/soc-2012-swiss_cheese/source/blender/editors/armature/reeb.c
    branches/soc-2012-swiss_cheese/source/blender/editors/gpencil/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/gpencil/drawgpencil.c
    branches/soc-2012-swiss_cheese/source/blender/editors/include/BIF_gl.h
    branches/soc-2012-swiss_cheese/source/blender/editors/include/BIF_glutil.h
    branches/soc-2012-swiss_cheese/source/blender/editors/include/ED_view3d.h
    branches/soc-2012-swiss_cheese/source/blender/editors/include/UI_resources.h
    branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface.c
    branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface_icons.c
    branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface_panel.c
    branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface_regions.c
    branches/soc-2012-swiss_cheese/source/blender/editors/interface/interface_widgets.c
    branches/soc-2012-swiss_cheese/source/blender/editors/interface/resources.c
    branches/soc-2012-swiss_cheese/source/blender/editors/interface/view2d.c
    branches/soc-2012-swiss_cheese/source/blender/editors/mesh/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/mesh/editmesh_knife.c
    branches/soc-2012-swiss_cheese/source/blender/editors/mesh/editmesh_loopcut.c
    branches/soc-2012-swiss_cheese/source/blender/editors/mesh/editmesh_select.c
    branches/soc-2012-swiss_cheese/source/blender/editors/mesh/editmesh_slide.c
    branches/soc-2012-swiss_cheese/source/blender/editors/physics/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/physics/particle_edit.c
    branches/soc-2012-swiss_cheese/source/blender/editors/screen/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/screen/area.c
    branches/soc-2012-swiss_cheese/source/blender/editors/screen/glutil.c
    branches/soc-2012-swiss_cheese/source/blender/editors/screen/screen_edit.c
    branches/soc-2012-swiss_cheese/source/blender/editors/sculpt_paint/paint_cursor.c
    branches/soc-2012-swiss_cheese/source/blender/editors/sculpt_paint/paint_image.c
    branches/soc-2012-swiss_cheese/source/blender/editors/sculpt_paint/paint_stroke.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_action/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_action/action_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_clip/clip_dopesheet_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_clip/clip_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_clip/clip_graph_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_clip/clip_utils.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_console/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_console/console_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_file/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_file/file_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_graph/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_graph/graph_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_graph/space_graph.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_image/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_image/image_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_info/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_info/textview.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_logic/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_logic/logic_window.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_nla/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_nla/nla_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_node/drawnode.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_node/node_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_outliner/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_outliner/outliner_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_sequencer/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_sequencer/sequencer_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_text/text_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_time/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_time/space_time.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/drawanimviz.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/editors/space_view3d/drawvolume.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/view3d_draw.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/view3d_fly.c
    branches/soc-2012-swiss_cheese/source/blender/editors/space_view3d/view3d_intern.h
    branches/soc-2012-swiss_cheese/source/blender/editors/transform/transform.c
    branches/soc-2012-swiss_cheese/source/blender/editors/transform/transform_manipulator.c
    branches/soc-2012-swiss_cheese/source/blender/editors/uvedit/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/editors/uvedit/uvedit_draw.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_primitives.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_buffers.c
    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_immediate.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_immediate.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_immediate_gl11.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_immediate_inline.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_immediate_internal.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_lighting.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_primitives.c
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_primitives_inline.h
    branches/soc-2012-swiss_cheese/source/blender/windowmanager/intern/wm_gesture.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/GamePlayer/common/GPC_Canvas.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/GamePlayer/common/GPC_RenderTools.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/KX_BlenderMaterial.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Ketsji/KX_Dome.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/CMakeLists.txt
    branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.cpp
    branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVA.cpp

Modified: branches/soc-2012-swiss_cheese/source/blender/blenfont/intern/blf.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/blenfont/intern/blf.c	2012-06-25 17:26:18 UTC (rev 48279)
+++ branches/soc-2012-swiss_cheese/source/blender/blenfont/intern/blf.c	2012-06-25 17:26:32 UTC (rev 48280)
@@ -507,7 +507,6 @@
 		/* one-time GL setup */
 		glEnable(GL_TEXTURE_2D);
 		glEnable(GL_BLEND);
-		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 	}
 
 	font->locked++;
@@ -578,12 +577,9 @@
 	if (font->flags & BLF_ROTATION)
 		glRotatef(font->angle, 0.0f, 0.0f, 1.0f);
 
-	/* if (font->shadow || font->blur) 
-		gpuGetCurrentColor4fv(font->orig_col); */
+	if (font->shadow || font->blur) 
+		gpuGetCurrentColor4fv(font->orig_col);
 
-	gpuGetCurrentColor4fv(font->orig_col);  // XXX: workaround
-	gpuCurrentColor4fv(font->orig_col);
-
 	/* always bind the texture for the first glyph */
 	font->tex_bind_state = -1;
 
@@ -599,6 +595,11 @@
 
 	glMatrixMode(GL_MODELVIEW);
 	glPopMatrix();
+
+	/* XXX: current color becomes undefined due to use of vertex arrays,
+	        but a lot of code relies on it remaining the same */
+	if (font->shadow || font->blur) 
+		gpuCurrentColor4fv(font->orig_col);
 }
 
 void BLF_draw(int fontid, const char *str, size_t len)

Modified: branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/DerivedMesh.c	2012-06-25 17:26:18 UTC (rev 48279)
+++ branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/DerivedMesh.c	2012-06-25 17:26:32 UTC (rev 48280)
@@ -82,6 +82,7 @@
 #include "GPU_draw.h"
 #include "GPU_extensions.h"
 #include "GPU_material.h"
+#include "GPU_compatibility.h"
 
 static void add_shapekey_layers(DerivedMesh *dm, Mesh *me, Object *ob);
 static void shapekey_layers_to_keyblocks(DerivedMesh *dm, Mesh *me, int actshape_uid);
@@ -2947,7 +2948,7 @@
 	/* if (GPU_buffer_legacy(dm) ) */ { /* TODO - VBO draw code, not high priority - campbell */
 		DEBUG_VBO("Using legacy code. drawNavMeshColored\n");
 		//glShadeModel(GL_SMOOTH);
-		glBegin(glmode = GL_QUADS);
+		gpuBegin(glmode = GL_QUADS);
 		for (a = 0; a < dm->numTessFaceData; a++, mface++) {
 			int new_glmode = mface->v4 ? GL_QUADS : GL_TRIANGLES;
 			int pi = polygonIdx[a];
@@ -2959,18 +2960,18 @@
 			}
 
 			if (new_glmode != glmode) {
-				glEnd();
-				glBegin(glmode = new_glmode);
+				gpuEnd();
+				gpuBegin(glmode = new_glmode);
 			}
-			glColor3fv(col);
-			glVertex3fv(mvert[mface->v1].co);
-			glVertex3fv(mvert[mface->v2].co);
-			glVertex3fv(mvert[mface->v3].co);
+			gpuColor3fv(col);
+			gpuVertex3fv(mvert[mface->v1].co);
+			gpuVertex3fv(mvert[mface->v2].co);
+			gpuVertex3fv(mvert[mface->v3].co);
 			if (mface->v4) {
-				glVertex3fv(mvert[mface->v4].co);
+				gpuVertex3fv(mvert[mface->v4].co);
 			}
 		}
-		glEnd();
+		gpuEnd();
 	}
 	glEnable(GL_LIGHTING);
 }

Modified: branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/cdderivedmesh.c	2012-06-25 17:26:18 UTC (rev 48279)
+++ branches/soc-2012-swiss_cheese/source/blender/blenkernel/intern/cdderivedmesh.c	2012-06-25 17:26:32 UTC (rev 48280)
@@ -64,6 +64,7 @@
 #include "GPU_draw.h"
 #include "GPU_extensions.h"
 #include "GPU_material.h"
+#include "GPU_compatibility.h"
 
 #include <string.h>
 #include <limits.h>
@@ -318,10 +319,12 @@
 	int i;
 
 	if (GPU_buffer_legacy(dm)) {
-		glBegin(GL_POINTS);
+		gpuImmediateFormat_V3();
+		gpuBegin(GL_POINTS);
 		for (i = 0; i < dm->numVertData; i++, mv++)
-			glVertex3fv(mv->co);
-		glEnd();
+			gpuVertex3fv(mv->co);
+		gpuEnd();
+		gpuImmediateUnformat();
 	}
 	else {  /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */
 		GPU_vertex_setup(dm);
@@ -344,29 +347,29 @@
 
 	if (mf) {
 		if (GPU_buffer_legacy(dm)) {
-			glBegin(GL_LINES);
+			gpuBegin(GL_LINES);
 			for (i = 0; i < dm->numTessFaceData; i++, mf++, tf++) {
 				if (!(mf->flag & ME_HIDE)) {
-					glVertex2fv(tf->uv[0]);
-					glVertex2fv(tf->uv[1]);
+					gpuVertex2fv(tf->uv[0]);
+					gpuVertex2fv(tf->uv[1]);
 
-					glVertex2fv(tf->uv[1]);
-					glVertex2fv(tf->uv[2]);
+					gpuVertex2fv(tf->uv[1]);
+					gpuVertex2fv(tf->uv[2]);
 
 					if (!mf->v4) {
-						glVertex2fv(tf->uv[2]);
-						glVertex2fv(tf->uv[0]);
+						gpuVertex2fv(tf->uv[2]);
+						gpuVertex2fv(tf->uv[0]);
 					}
 					else {
-						glVertex2fv(tf->uv[2]);
-						glVertex2fv(tf->uv[3]);
+						gpuVertex2fv(tf->uv[2]);
+						gpuVertex2fv(tf->uv[3]);
 
-						glVertex2fv(tf->uv[3]);
-						glVertex2fv(tf->uv[0]);
+						gpuVertex2fv(tf->uv[3]);
+						gpuVertex2fv(tf->uv[0]);
 					}
 				}
 			}
-			glEnd();
+			gpuEnd();
 		}
 		else {
 			int prevstart = 0;
@@ -415,16 +418,24 @@
 	
 	if (GPU_buffer_legacy(dm)) {
 		DEBUG_VBO("Using legacy code. cdDM_drawEdges\n");
-		glBegin(GL_LINES);
+		gpuImmediateFormat_V3();
+		gpuBegin(GL_LINES);
 		for (i = 0; i < dm->numEdgeData; i++, medge++) {
-			if ((drawAllEdges || (medge->flag & ME_EDGEDRAW)) &&
-			    (drawLooseEdges || !(medge->flag & ME_LOOSEEDGE)))
-			{
-				glVertex3fv(mvert[medge->v1].co);
-				glVertex3fv(mvert[medge->v2].co);
+			#define is_visible     (drawAllEdges   ||  (medge->flag & ME_EDGEDRAW))
+			#define is_not_loose   (drawLooseEdges || !(medge->flag & ME_LOOSEEDGE))
+			#define is_interesting (medge->flag & (ME_SEAM|ME_SHARP))
+
+			if ((is_visible && is_not_loose) || is_interesting) {
+				gpuVertex3fv(mvert[medge->v1].co);
+				gpuVertex3fv(mvert[medge->v2].co);
 			}
+
+			#undef is_visible
+			#undef is_not_loose
+			#undef is_interesting
 		}
-		glEnd();
+		gpuEnd();
+		gpuImmediateUnformat();
 	}
 	else {  /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */
 		int prevstart = 0;
@@ -467,14 +478,16 @@
 
 	if (GPU_buffer_legacy(dm)) {
 		DEBUG_VBO("Using legacy code. cdDM_drawLooseEdges\n");
-		glBegin(GL_LINES);
+		gpuImmediateFormat_V3();
+		gpuBegin(GL_LINES);
 		for (i = 0; i < dm->numEdgeData; i++, medge++) {
 			if (medge->flag & ME_LOOSEEDGE) {
-				glVertex3fv(mvert[medge->v1].co);
-				glVertex3fv(mvert[medge->v2].co);
+				gpuVertex3fv(mvert[medge->v1].co);
+				gpuVertex3fv(mvert[medge->v2].co);
 			}
 		}
-		glEnd();
+		gpuEnd();
+		gpuImmediateUnformat();
 	}
 	else {  /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */
 		int prevstart = 0;
@@ -519,9 +532,9 @@
 #define PASSVERT(index) {						\
 	if (shademodel == GL_SMOOTH) {				\
 		short *no = mvert[index].no;			\
-		glNormal3sv(no);						\
+		gpuNormal3sv(no);						\
 	}											\
-	glVertex3fv(mvert[index].co);				\
+	gpuVertex3fv(mvert[index].co);				\
 } (void)0
 
 	if (cddm->pbvh && cddm->pbvh_draw) {
@@ -537,7 +550,8 @@
 
 	if (GPU_buffer_legacy(dm)) {
 		DEBUG_VBO("Using legacy code. cdDM_drawFacesSolid\n");
-		glBegin(glmode = GL_QUADS);
+		gpuImmediateFormat_N3_V3();
+		gpuBegin(glmode = GL_QUADS);
 		for (a = 0; a < dm->numTessFaceData; a++, mface++) {
 			int new_glmode, new_matnr, new_shademodel;
 
@@ -546,18 +560,18 @@
 			new_shademodel = (mface->flag & ME_SMOOTH) ? GL_SMOOTH : GL_FLAT;
 			
 			if (new_glmode != glmode || new_matnr != matnr || new_shademodel != shademodel) {
-				glEnd();
+				gpuEnd();
 
 				drawCurrentMat = setMaterial(matnr = new_matnr, NULL);
 
 				glShadeModel(shademodel = new_shademodel);
-				glBegin(glmode = new_glmode);
+				gpuBegin(glmode = new_glmode);
 			} 
 			
 			if (drawCurrentMat) {
 				if (shademodel == GL_FLAT) {
 					if (nors) {
-						glNormal3fv(nors);
+						gpuNormal3fv(nors);
 					}
 					else {
 						/* TODO make this better (cache facenormals as layer?) */
@@ -568,7 +582,7 @@
 						else {
 							normal_tri_v3(nor, mvert[mface->v1].co, mvert[mface->v2].co, mvert[mface->v3].co);
 						}
-						glNormal3fv(nor);
+						gpuNormal3fv(nor);
 					}
 				}
 
@@ -582,7 +596,8 @@
 
 			if (nors) nors += 3;
 		}
-		glEnd();
+		gpuEnd();
+		gpuImmediateUnformat();
 	}
 	else {  /* use OpenGL VBOs or Vertex Arrays instead for better, faster rendering */
 		GPU_vertex_setup(dm);
@@ -625,6 +640,7 @@
 
 	if (GPU_buffer_legacy(dm)) {
 		DEBUG_VBO("Using legacy code. cdDM_drawFacesTex_common\n");
+		gpuImmediateFormat_T2_C4_N3_V3();
 		for (i = 0; i < dm->numTessFaceData; i++, mf++) {
 			MVert *mvert;
 			DMDrawOption draw_option;
@@ -650,7 +666,7 @@
 
 				if (!(mf->flag & ME_SMOOTH)) {
 					if (nors) {
-						glNormal3fv(nors);
+						gpuCurrentNormal3fv(nors);
 					}
 					else {
 						float nor[3];
@@ -660,41 +676,42 @@
 						else {
 							normal_tri_v3(nor, mv[mf->v1].co, mv[mf->v2].co, mv[mf->v3].co);
 						}
-						glNormal3fv(nor);
+						gpuCurrentNormal3fv(nor);
 					}
 				}
 
-				glBegin(mf->v4 ? GL_QUADS : GL_TRIANGLES);
-				if (tf) glTexCoord2fv(tf[i].uv[0]);
-				if (cp) glColor3ub(cp[3], cp[2], cp[1]);
+				gpuBegin(mf->v4 ? GL_QUADS : GL_TRIANGLES);
+				if (tf) gpuTexCoord2fv(tf[i].uv[0]);
+				if (cp) gpuColor3ub(cp[3], cp[2], cp[1]);
 				mvert = &mv[mf->v1];
-				if (mf->flag & ME_SMOOTH) glNormal3sv(mvert->no);
-				glVertex3fv(mvert->co);
+				if (mf->flag & ME_SMOOTH) gpuNormal3sv(mvert->no);
+				gpuVertex3fv(mvert->co);
 					
-				if (tf) glTexCoord2fv(tf[i].uv[1]);
-				if (cp) glColor3ub(cp[7], cp[6], cp[5]);
+				if (tf) gpuTexCoord2fv(tf[i].uv[1]);
+				if (cp) gpuColor3ub(cp[7], cp[6], cp[5]);
 				mvert = &mv[mf->v2];
-				if (mf->flag & ME_SMOOTH) glNormal3sv(mvert->no);
-				glVertex3fv(mvert->co);
+				if (mf->flag & ME_SMOOTH) gpuNormal3sv(mvert->no);
+				gpuVertex3fv(mvert->co);
 
-				if (tf) glTexCoord2fv(tf[i].uv[2]);
-				if (cp) glColor3ub(cp[11], cp[10], cp[9]);
+				if (tf) gpuTexCoord2fv(tf[i].uv[2]);
+				if (cp) gpuColor3ub(cp[11], cp[10], cp[9]);
 				mvert = &mv[mf->v3];
-				if (mf->flag & ME_SMOOTH) glNormal3sv(mvert->no);
-				glVertex3fv(mvert->co);
+				if (mf->flag & ME_SMOOTH) gpuNormal3sv(mvert->no);
+				gpuVertex3fv(mvert->co);
 
 				if (mf->v4) {
-					if (tf) glTexCoord2fv(tf[i].uv[3]);
-					if (cp) glColor3ub(cp[15], cp[14], cp[13]);
+					if (tf) gpuTexCoord2fv(tf[i].uv[3]);
+					if (cp) gpuColor3ub(cp[15], cp[14], cp[13]);
 					mvert = &mv[mf->v4];
-					if (mf->flag & ME_SMOOTH) glNormal3sv(mvert->no);
-					glVertex3fv(mvert->co);
+					if (mf->flag & ME_SMOOTH) gpuNormal3sv(mvert->no);
+					gpuVertex3fv(mvert->co);
 				}
-				glEnd();

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list