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. @@

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to