[Bf-blender-cvs] [394b815] temp_viewport_fx_merge: Substitute draw calls with a wrapper to make sure current matrix stack works.

Antony Riakiotakis noreply at git.blender.org
Tue Apr 14 18:09:04 CEST 2015


Commit: 394b81526109b1fcfcb191e130b61611d71a9b51
Author: Antony Riakiotakis
Date:   Tue Apr 14 15:23:13 2015 +0200
Branches: temp_viewport_fx_merge
https://developer.blender.org/rB394b81526109b1fcfcb191e130b61611d71a9b51

Substitute draw calls with a wrapper to make sure current matrix stack
works.

===================================================================

M	source/blender/blenfont/intern/blf_glyph.c
M	source/blender/blenkernel/intern/DerivedMesh.c
M	source/blender/blenkernel/intern/cdderivedmesh.c
M	source/blender/blenkernel/intern/editderivedmesh.c
M	source/blender/blenkernel/intern/subsurf_ccg.c
M	source/blender/editors/animation/anim_draw.c
M	source/blender/editors/animation/anim_markers.c
M	source/blender/editors/animation/keyframes_draw.c
M	source/blender/editors/armature/reeb.c
M	source/blender/editors/gpencil/drawgpencil.c
M	source/blender/editors/interface/interface_draw.c
M	source/blender/editors/interface/interface_icons.c
M	source/blender/editors/interface/interface_panel.c
M	source/blender/editors/interface/interface_widgets.c
M	source/blender/editors/interface/view2d.c
M	source/blender/editors/mask/mask_draw.c
M	source/blender/editors/mesh/editmesh_knife.c
M	source/blender/editors/mesh/editmesh_loopcut.c
M	source/blender/editors/screen/area.c
M	source/blender/editors/screen/glutil.c
M	source/blender/editors/screen/screen_edit.c
M	source/blender/editors/sculpt_paint/paint_cursor.c
M	source/blender/editors/space_action/action_draw.c
M	source/blender/editors/space_clip/clip_dopesheet_draw.c
M	source/blender/editors/space_clip/clip_draw.c
M	source/blender/editors/space_clip/clip_graph_draw.c
M	source/blender/editors/space_clip/clip_utils.c
M	source/blender/editors/space_file/file_draw.c
M	source/blender/editors/space_graph/graph_draw.c
M	source/blender/editors/space_graph/space_graph.c
M	source/blender/editors/space_image/image_draw.c
M	source/blender/editors/space_nla/nla_draw.c
M	source/blender/editors/space_node/drawnode.c
M	source/blender/editors/space_node/node_draw.c
M	source/blender/editors/space_sequencer/sequencer_draw.c
M	source/blender/editors/space_text/text_draw.c
M	source/blender/editors/space_time/space_time.c
M	source/blender/editors/space_view3d/drawanimviz.c
M	source/blender/editors/space_view3d/drawarmature.c
M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/editors/space_view3d/drawsimdebug.c
M	source/blender/editors/space_view3d/drawvolume.c
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/editors/space_view3d/view3d_fly.c
M	source/blender/editors/space_view3d/view3d_ruler.c
M	source/blender/editors/space_view3d/view3d_walk.c
M	source/blender/editors/transform/transform.c
M	source/blender/editors/transform/transform_constraints.c
M	source/blender/editors/transform/transform_generics.c
M	source/blender/editors/transform/transform_manipulator.c
M	source/blender/editors/transform/transform_snap.c
M	source/blender/editors/util/ed_util.c
M	source/blender/editors/uvedit/uvedit_draw.c
M	source/blender/editors/uvedit/uvedit_smart_stitch.c
M	source/blender/gpu/GPU_immediate.h
M	source/blender/gpu/intern/gpu_buffers.c
M	source/blender/gpu/intern/gpu_compositing.c
M	source/blender/gpu/intern/gpu_draw.c
M	source/blender/gpu/intern/gpu_extensions.c
M	source/blender/gpu/intern/gpu_immediate.c
M	source/blender/gpu/intern/gpu_lighting.c
M	source/blender/gpu/intern/gpu_matrix.c
M	source/blender/gpu/intern/gpu_primitives_inline.h
M	source/blender/windowmanager/intern/wm_draw.c
M	source/blender/windowmanager/intern/wm_gesture.c
M	source/blender/windowmanager/intern/wm_operators.c
M	source/blender/windowmanager/intern/wm_stereo.c
M	source/gameengine/Ketsji/KX_Dome.cpp
M	source/gameengine/Rasterizer/RAS_2DFilterManager.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVA.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp

===================================================================

diff --git a/source/blender/blenfont/intern/blf_glyph.c b/source/blender/blenfont/intern/blf_glyph.c
index c65a082..5e3dbe6 100644
--- a/source/blender/blenfont/intern/blf_glyph.c
+++ b/source/blender/blenfont/intern/blf_glyph.c
@@ -55,6 +55,8 @@
 #include "BIF_gl.h"
 #include "BLF_api.h"
 
+#include "GPU_immediate.h"
+
 #include "blf_internal_types.h"
 #include "blf_internal.h"
 
@@ -310,7 +312,7 @@ void blf_glyph_free(GlyphBLF *g)
 
 static void blf_texture_draw(float uv[2][2], float dx, float y1, float dx1, float y2)
 {
-	glBegin(GL_QUADS);
+	GPUBegin(GL_QUADS);
 	glTexCoord2f(uv[0][0], uv[0][1]);
 	glVertex2f(dx, y1);
 	
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 1ece9d8..f14fb00 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -74,7 +74,7 @@ static DerivedMesh *navmesh_dm_createNavMeshForVisualization(DerivedMesh *dm);
 
 #include "GPU_buffers.h"
 #include "GPU_extensions.h"
-#include "GPU_glew.h"
+#include "GPU_immediate.h"
 
 /* very slow! enable for testing only! */
 //#define USE_MODIFIER_VALIDATE
@@ -3240,7 +3240,7 @@ static void navmesh_drawColored(DerivedMesh *dm)
 	{
 		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];
@@ -3253,7 +3253,7 @@ static void navmesh_drawColored(DerivedMesh *dm)
 
 			if (new_glmode != glmode) {
 				glEnd();
-				glBegin(glmode = new_glmode);
+				GPUBegin(glmode = new_glmode);
 			}
 			glColor3fv(col);
 			glVertex3fv(mvert[mface->v1].co);
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index bd5ee4b..7646974 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -58,7 +58,7 @@
 #include "GPU_buffers.h"
 #include "GPU_draw.h"
 #include "GPU_extensions.h"
-#include "GPU_glew.h"
+#include "GPU_immediate.h"
 
 #include <string.h>
 #include <limits.h>
@@ -342,9 +342,9 @@ static void cdDM_drawVerts(DerivedMesh *dm)
 {
 	GPU_vertex_setup(dm);
 	if (dm->drawObject->tot_triangle_point)
-		glDrawArrays(GL_POINTS, 0, dm->drawObject->tot_triangle_point);
+		GPUDrawArrays(GL_POINTS, 0, dm->drawObject->tot_triangle_point);
 	else
-		glDrawArrays(GL_POINTS, 0, dm->drawObject->tot_loose_point);
+		GPUDrawArrays(GL_POINTS, 0, dm->drawObject->tot_loose_point);
 	GPU_buffer_unbind();
 }
 
@@ -370,7 +370,7 @@ static void cdDM_drawUVEdges(DerivedMesh *dm)
 			}
 			if (prevdraw != draw) {
 				if (prevdraw > 0 && (curpos - prevstart) > 0) {
-					glDrawArrays(GL_LINES, prevstart, curpos - prevstart);
+					GPUDrawArrays(GL_LINES, prevstart, curpos - prevstart);
 				}
 				prevstart = curpos;
 			}
@@ -383,7 +383,7 @@ static void cdDM_drawUVEdges(DerivedMesh *dm)
 			prevdraw = draw;
 		}
 		if (prevdraw > 0 && (curpos - prevstart) > 0) {
-			glDrawArrays(GL_LINES, prevstart, curpos - prevstart);
+			GPUDrawArrays(GL_LINES, prevstart, curpos - prevstart);
 		}
 		GPU_buffer_unbind();
 	}
@@ -486,7 +486,7 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm,
 	glShadeModel(GL_SMOOTH);
 	for (a = 0; a < dm->drawObject->totmaterial; a++) {
 		if (!setMaterial || setMaterial(dm->drawObject->materials[a].mat_nr + 1, NULL)) {
-			glDrawArrays(GL_TRIANGLES, dm->drawObject->materials[a].start,
+			GPUDrawArrays(GL_TRIANGLES, dm->drawObject->materials[a].start,
 			             dm->drawObject->materials[a].totpoint);
 		}
 	}
@@ -612,7 +612,7 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
 				else
 					GPU_color_switch(0);
 				
-				glDrawArrays(GL_TRIANGLES, first, count);
+				GPUDrawArrays(GL_TRIANGLES, first, count);
 			}
 			
 			startFace = i + 1;
@@ -698,7 +698,7 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm,
 				/* no need to set shading mode to flat because
 				 *  normals are already used to change shading */
 				glShadeModel(GL_SMOOTH);
-				glBegin(mf->v4 ? GL_QUADS : GL_TRIANGLES);
+				GPUBegin(mf->v4 ? GL_QUADS : GL_TRIANGLES);
 
 				if (lnors) {
 					if (cp) glColor3ub(cp[3], cp[2], cp[1]);
@@ -788,7 +788,7 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm,
 		}
 		else if (setDrawOptions == NULL) {
 			/* just draw the entire face array */
-			glDrawArrays(GL_TRIANGLES, 0, (tottri) * 3);
+			GPUDrawArrays(GL_TRIANGLES, 0, (tottri) * 3);
 		}
 		else {
 			/* we need to check if the next material changes */
@@ -843,7 +843,7 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm,
 					int count = (i - prevstart + (draw_option != DM_DRAW_OPTION_SKIP ? 1 : 0)) * 3;
 					
 					if (count)
-						glDrawArrays(GL_TRIANGLES, first, count);
+						GPUDrawArrays(GL_TRIANGLES, first, count);
 					
 					prevstart = i + 1;
 					
@@ -934,7 +934,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
 		DEBUG_VBO("Using legacy code. cdDM_drawMappedFacesGLSL\n");
 		memset(&attribs, 0, sizeof(attribs));
 
-		glBegin(GL_QUADS);
+		GPUBegin(GL_QUADS);
 
 		for (a = 0; a < dm->numTessFaceData; a++, mface++) {
 			const bool smoothnormal = lnors || (mface->flag & ME_SMOOTH);
@@ -948,7 +948,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
 				if (do_draw)
 					DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs);
 
-				glBegin(GL_QUADS);
+				GPUBegin(GL_QUADS);
 			}
 
 			if (!do_draw) {
@@ -1035,7 +1035,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
 							GPU_interleaved_attrib_setup(buffer, datatypes, numdata);
 						}
 						
-						glDrawArrays(GL_TRIANGLES, start * 3, numfaces * 3);
+						GPUDrawArrays(GL_TRIANGLES, start * 3, numfaces * 3);
 						
 						if (numdata != 0) {
 							
@@ -1204,7 +1204,7 @@ static void cdDM_drawMappedFacesGLSL(DerivedMesh *dm,
 					GPU_buffer_unlock(buffer);
 					GPU_interleaved_attrib_setup(buffer, datatypes, numdata);
 				}
-				glDrawArrays(GL_TRIANGLES, start * 3, (curface - start) * 3);
+				GPUDrawArrays(GL_TRIANGLES, start * 3, (curface - start) * 3);
 			}
 		}
 		GPU_buffer_unbind();
@@ -1262,7 +1262,7 @@ static void cdDM_drawMappedFacesMat(DerivedMesh *dm,
 
 	memset(&attribs, 0, sizeof(attribs));
 
-	glBegin(GL_QUADS);
+	GPUBegin(GL_QUADS);
 
 	for (a = 0; a < dm->numTessFaceData; a++, mf++) {
 		const bool smoothnormal = lnors || (mf->flag & ME_SMOOTH);
@@ -1277,7 +1277,7 @@ static void cdDM_drawMappedFacesMat(DerivedMesh *dm,
 			setMaterial(userData, matnr = new_matnr, &gattribs);
 			DM_vertex_attributes_from_gpu(dm, &gattribs, &attribs);
 
-			glBegin(GL_QUADS);
+			GPUBegin(GL_QUADS);
 		}
 
 		/* skipping faces */
@@ -1334,7 +1334,7 @@ static void cdDM_drawMappedEdges(DerivedMesh *dm, DMSetDrawOptions setDrawOption
 	MEdge *edge = cddm->medge;
 	int i, orig, *index = DM_get_edge_data_layer(dm, CD_ORIGINDEX);
 
-	glBegin(GL_LINES);
+	GPUBegin(GL_LINES);
 	for (i = 0; i < dm->numEdgeData; i++, edge++) {
 		if (index) {
 			orig = *index++;
diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c
index 40f3022..e2f9011 100644
--- a/source/blender/blenkernel/intern/editderivedmesh.c
+++ b/source/blender/blenkernel/intern/editderivedmesh.c
@@ -56,7 +56,7 @@
 #include "MEM_guardedalloc.h"
 
 #include "GPU_extensions.h"
-#include "GPU_glew.h"
+#include "GPU_immediate.h"
 
 extern GLubyte stipple_quarttone[128]; /* glutil.c, bad level data */
 
@@ -319,7 +319,7 @@ static void emDM_drawMappedEdges(DerivedMesh *dm,
 
 		BM_mesh_elem_index_ensure(bm, BM_VERT);
 
-		glBegin(GL_LINES);
+		GPUBegin(GL_LINES);
 		BM_ITER_MESH_INDEX (eed, &iter, bm, BM_EDGES_OF_MESH, i) {
 			if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
 				glVertex3fv(bmdm->vertexCos[BM_elem_index_get(eed->v1)]);
@@ -329,7 +329,7 @@ static void emDM_drawMappedEdges(DerivedMesh *dm,
 		glEnd();
 	}
 	else {
-		glBegin(GL_LINES);
+		GPUBegin(GL_LINES);
 		BM_ITER_MESH_INDEX (eed, &iter, bm, BM_EDGES_OF_MESH, i) {
 			if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
 				glVertex3fv(eed->v1->co);
@@ -361,7 +361,7 @@ static void emDM_drawMappedEdgesInterp(DerivedMesh *dm,
 
 		BM_mesh_elem_index_ensure(bm, BM_VERT);
 
-		glBegin(GL_LINES);
+		GPUBegin(GL_LINES);
 		BM_ITER_MESH_INDEX (eed, &iter, bm, BM_EDGES_OF_MESH, i) {
 			if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
 				setDrawInterpOptions(userData, i, 0.0);
@@ -373,7 +373,7 @@ static void emDM_drawMappedEdgesInterp(DerivedMesh *dm,
 		glEnd();
 	}
 	else {
-		glBegin(GL_LINES);
+		GPUBegin(GL_LINES);
 		BM_ITER_MESH_INDEX (eed, &iter, bm, BM_EDGES_OF_MESH, i) {
 			if (!setDrawOptions || (setDrawOptions(userData, i) != DM_DRAW_OPTION_SKIP)) {
 				setDrawInterpOptions(userData, i, 0.0);
@@ -399,7 +399,7 @@ static void emDM_drawUVEdges(DerivedMesh *dm)
 		return;
 	}
 
-	glBegin(GL_LINES);
+	GPUBegin(GL_LINES);
 	BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
 		BMLoop *l_iter, *l_first;
 		const float *uv, *uv_prev;
@@ -574,7 +574,7 @@ static void emDM_drawMappedFaces(DerivedMesh *dm,
 				if (draw_option == DM_DRAW_OPTION_STIPPLE) { /* enabled with stipple */
 
 					if (poly_prev != GL_ZERO) glEnd();
-					poly_prev = GL_ZERO; /* force glBegin */
+					poly_prev = GL_ZERO; /* force GPUBegin */
 
 					glEnable(GL_POLYGON_STIPPLE);
 					glPolygonStipple(stipple_quarttone);
@@ -585,7 +585,7 @@ static void emDM_drawMappedFaces(DerivedMesh *dm,
 				if (skip_normals) {
 					if (poly_type != poly_prev) {
 						if (poly_prev != GL_ZERO) glEnd();
-						glBegin((poly_prev = poly_type)); /* BMesh: will always be GL_TRIANGLES */
+						GPUBegin((poly_prev = poly_type)); /* BMesh: will always be GL_TRIANGLES */
 					}
 					if (has_vcol_any) glColor3ubv((const GLubyte *)&(lcol[0]->r));
 					glVertex3fv(vertexCos[BM_elem_index_get(ltri[0]->v)]);
@@ -599,11 +599,11 @@ static void emDM_drawMappedFaces(DerivedMesh *dm,
 					if (shade_type != shade_prev) {
 						if (poly_prev != GL_ZERO) glEnd();
 						glShadeModel((shade_prev = shade_type)); /* same as bel

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list