[Bf-blender-cvs] [9d03307] master: BGE: Remove RAS_IRasterizer::IndexPrimitivesMulti()

Mitchell Stokes noreply at git.blender.org
Tue Dec 8 04:06:21 CET 2015


Commit: 9d03307033338dc6ce57a2258e4dd01d09f1dcb3
Author: Mitchell Stokes
Date:   Sun Dec 6 14:35:14 2015 -0800
Branches: master
https://developer.blender.org/rB9d03307033338dc6ce57a2258e4dd01d09f1dcb3

BGE: Remove RAS_IRasterizer::IndexPrimitivesMulti()

The work that was being done in IndexPrimitiveMulti() is now done by
IndexPrimitive() and we always assume multitexture support.

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

M	source/gameengine/Rasterizer/RAS_IRasterizer.h
M	source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_IStorage.h
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.h
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVA.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVA.h
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.cpp
M	source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVBO.h

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

diff --git a/source/gameengine/Rasterizer/RAS_IRasterizer.h b/source/gameengine/Rasterizer/RAS_IRasterizer.h
index 7fbaf07..618bcbf 100644
--- a/source/gameengine/Rasterizer/RAS_IRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_IRasterizer.h
@@ -267,7 +267,6 @@ public:
 	 * IndexPrimitives: Renders primitives from mesh slot.
 	 */
 	virtual void IndexPrimitives(class RAS_MeshSlot &ms) = 0;
-	virtual void IndexPrimitivesMulti(class RAS_MeshSlot &ms) = 0;
 
 	/**
 	 * IndexPrimitives_3DText will render text into the polygons.
diff --git a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
index 2078fc9..13d49c5 100644
--- a/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
+++ b/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
@@ -649,15 +649,13 @@ void RAS_MaterialBucket::RenderMeshSlot(const MT_Transform& cameratrans, RAS_IRa
 	else
 		ms.m_bDisplayList = true;
 
-	// for text drawing using faces
-	if (m_material->GetDrawingMode() & RAS_IRasterizer::RAS_RENDER_3DPOLYGON_TEXT)
+	if (m_material->GetDrawingMode() & RAS_IRasterizer::RAS_RENDER_3DPOLYGON_TEXT) {
+	    // for text drawing using faces
 		rasty->IndexPrimitives_3DText(ms, m_material);
-	// for multitexturing
-	else if ((m_material->GetFlag() & (RAS_MULTITEX|RAS_BLENDERGLSL)))
-		rasty->IndexPrimitivesMulti(ms);
-	// use normal IndexPrimitives
-	else
+	}
+	else {
 		rasty->IndexPrimitives(ms);
+	}
 
 	rasty->PopMatrix();
 }
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_IStorage.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_IStorage.h
index bfa6e1a..ae0cdcd 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_IStorage.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_IStorage.h
@@ -44,7 +44,6 @@ public:
 	virtual void	Exit()=0;
 
 	virtual void	IndexPrimitives(RAS_MeshSlot& ms)=0;
-	virtual void	IndexPrimitivesMulti(RAS_MeshSlot& ms)=0;
 
 	virtual void	SetDrawingMode(int drawingmode)=0;
 
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
index 34184f7..275e4b4 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.cpp
@@ -243,30 +243,6 @@ void RAS_ListRasterizer::IndexPrimitives(RAS_MeshSlot& ms)
 	if (ms.m_bDisplayList) {
 		localSlot = FindOrAdd(ms);
 		localSlot->DrawList();
-		if (localSlot->End()) {
-			// save slot here too, needed for replicas and object using same mesh
-			// => they have the same vertexarray but different mesh slot
-			ms.m_DisplayList = localSlot;
-			return;
-		}
-	}
-	
-	RAS_OpenGLRasterizer::IndexPrimitives(ms);
-
-	if (ms.m_bDisplayList) {
-		localSlot->EndList();
-		ms.m_DisplayList = localSlot;
-	}
-}
-
-
-void RAS_ListRasterizer::IndexPrimitivesMulti(RAS_MeshSlot& ms)
-{
-	RAS_ListSlot* localSlot =0;
-
-	if (ms.m_bDisplayList) {
-		localSlot = FindOrAdd(ms);
-		localSlot->DrawList();
 
 		if (localSlot->End()) {
 			// save slot here too, needed for replicas and object using same mesh
@@ -276,7 +252,7 @@ void RAS_ListRasterizer::IndexPrimitivesMulti(RAS_MeshSlot& ms)
 		}
 	}
 
-	RAS_OpenGLRasterizer::IndexPrimitivesMulti(ms);
+	RAS_OpenGLRasterizer::IndexPrimitives(ms);
 
 	if (ms.m_bDisplayList) {
 		localSlot->EndList();
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
index 5e1c662..420bf5d 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_ListRasterizer.h
@@ -60,7 +60,6 @@ public:
 	virtual ~RAS_ListRasterizer();
 
 	virtual void	IndexPrimitives(class RAS_MeshSlot& ms);
-	virtual void	IndexPrimitivesMulti(class RAS_MeshSlot& ms);
 
 	virtual bool	Init();
 	virtual void	Exit();
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
index 2854557..4629b91 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
@@ -740,14 +740,6 @@ void RAS_OpenGLRasterizer::IndexPrimitives(RAS_MeshSlot& ms)
 		m_storage->IndexPrimitives(ms);
 }
 
-void RAS_OpenGLRasterizer::IndexPrimitivesMulti(RAS_MeshSlot& ms)
-{
-	if (ms.m_pDerivedMesh)
-		m_failsafe_storage->IndexPrimitivesMulti(ms);
-	else
-		m_storage->IndexPrimitivesMulti(ms);
-}
-
 void RAS_OpenGLRasterizer::SetProjectionMatrix(MT_CmMatrix4x4 &mat)
 {
 	glMatrixMode(GL_PROJECTION);
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
index 67a11f6..10e11bc 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
@@ -186,7 +186,6 @@ public:
 	virtual void SwapBuffers();
 
 	virtual void IndexPrimitives(class RAS_MeshSlot &ms);
-	virtual void IndexPrimitivesMulti(class RAS_MeshSlot &ms);
 	virtual void IndexPrimitives_3DText(class RAS_MeshSlot &ms, class RAS_IPolyMaterial *polymat);
 
 	virtual void SetProjectionMatrix(MT_CmMatrix4x4 &mat);
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.cpp
index 2cf6088..2fd25e4 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.cpp
@@ -59,16 +59,6 @@ void RAS_StorageIM::Exit()
 {
 }
 
-void RAS_StorageIM::IndexPrimitives(RAS_MeshSlot& ms)
-{
-	IndexPrimitivesInternal(ms, false);
-}
-
-void RAS_StorageIM::IndexPrimitivesMulti(class RAS_MeshSlot& ms)
-{
-	IndexPrimitivesInternal(ms, true);
-}
-
 void RAS_StorageIM::TexCoord(const RAS_TexVert &tv)
 {
 	int unit;
@@ -206,15 +196,17 @@ static DMDrawOption CheckTexDM(MTexPoly *mtexpoly, const bool has_mcol, int matn
 	return DM_DRAW_OPTION_SKIP;
 }
 
-void RAS_StorageIM::IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi)
-{ 
+
+
+void RAS_StorageIM::IndexPrimitives(RAS_MeshSlot& ms)
+{
 	bool obcolor = ms.m_bObjectColor;
 	bool wireframe = m_drawingmode <= RAS_IRasterizer::KX_WIREFRAME;
 	MT_Vector4& rgba = ms.m_RGBAcolor;
 	RAS_MeshSlot::iterator it;
 
 	if (ms.m_pDerivedMesh) {
-		// mesh data is in derived mesh, 
+		// mesh data is in derived mesh,
 		current_bucket = ms.m_bucket;
 		current_polymat = current_bucket->GetPolyMaterial();
 		current_ms = &ms;
@@ -229,7 +221,7 @@ void RAS_StorageIM::IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi)
 			this->SetCullFace(false);
 
 		if (current_polymat->GetFlag() & RAS_BLENDERGLSL) {
-			// GetMaterialIndex return the original mface material index, 
+			// GetMaterialIndex return the original mface material index,
 			// increment by 1 to match what derived mesh is doing
 			current_blmat_nr = current_polymat->GetMaterialIndex()+1;
 			// For GLSL we need to retrieve the GPU material attribute
@@ -255,7 +247,7 @@ void RAS_StorageIM::IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi)
 	for (ms.begin(it); !ms.end(it); ms.next(it)) {
 		RAS_TexVert *vertex;
 		size_t i, j, numvert;
-		
+
 		numvert = it.array->m_type;
 
 		if (it.array->m_type == RAS_DisplayArray::LINE) {
@@ -294,10 +286,7 @@ void RAS_StorageIM::IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi)
 
 						glNormal3fv(vertex->getNormal());
 
-						if (multi)
-							TexCoord(*vertex);
-						else
-							glTexCoord2fv(vertex->getUV(0));
+						TexCoord(*vertex);
 					}
 
 					glVertex3fv(vertex->getXYZ());
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.h b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.h
index 54ba2a5..e98b3ab 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.h
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageIM.h
@@ -41,7 +41,6 @@ public:
 	virtual void	Exit();
 
 	virtual void	IndexPrimitives(RAS_MeshSlot& ms);
-	virtual void	IndexPrimitivesMulti(class RAS_MeshSlot& ms);
 
 	virtual void	SetDrawingMode(int drawingmode){m_drawingmode=drawingmode;};
 
@@ -56,8 +55,6 @@ protected:
 	void	TexCoord(const RAS_TexVert &tv);
 	void	SetCullFace(bool enable);
 
-	void	IndexPrimitivesInternal(RAS_MeshSlot& ms, bool multi);
-
 
 #ifdef WITH_CXX_GUARDEDALLOC
 public:
diff --git a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVA.cpp b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVA.cpp
index c2980a6..cf77ebf 100644
--- a/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVA.cpp
+++ b/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_StorageVA.cpp
@@ -56,68 +56,7 @@ void RAS_StorageVA::Exit()
 {
 }
 
-void RAS_StorageVA::IndexPrimitives(RAS_MeshSlot& ms)
-{
-	static const GLsizei stride = sizeof(RAS_TexVert);
-	bool wireframe = m_drawingmode <= RAS_IRasterizer::KX_WIREFRAME;
-	RAS_MeshSlot::iterator it;
-	GLenum drawmode;
-
-	if (!wireframe)
-		glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-	glEnableClientState(GL_VERTEX_ARRAY);
-	glEnableClientState(GL_NORMAL_ARRAY);
-
-	// use glDrawElements to draw each vertexarray
-	for (ms.begin(it); !ms.end(it); ms.next(it)) {
-		if (it.totindex == 0)
-			continue;
-
-		// drawing mode
-		if (it.array->m_type == RAS_DisplayArray::TRIANGLE)
-			drawmode = GL_TRIANGLES;
-		else if (it.array->m_type == RAS_DisplayArray::QUAD)
-			drawmode = GL_QUADS;
-		else
-			drawmode = GL_LINES;
-
-		// colors
-		if (drawmode != GL_LINES && !wireframe) {
-			if (ms.m_bObjectColor) {
-				const MT_Vector4& rgba = ms.m_RGBAcolor;
-
-				glDisableClientState(GL_COLOR_ARRAY);
-				glColor4d(rgba[0], rgba[1], rgba[2], rgba[3]);
-			}
-			else {
-				glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
-				glEnableClientState(GL_COLOR_ARRAY);
-			}
-		}
-		else
-			glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
-
-		glVertexPointer(3, GL_FLOAT, stride, it.vertex->getXYZ());
-		glNormalPointer(GL_FLOAT, stride, it.vertex->

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list