Revision: 49153
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49153
Author:   alexk
Date:     2012-07-23 20:13:24 +0000 (Mon, 23 Jul 2012)
Log Message:
-----------
Fix states for OpenGL ES.
Surface culling bugs were reported by Dalai Felinto.

Modified Paths:
--------------
    
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp

Modified: 
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
===================================================================
--- 
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
   2012-07-23 19:08:02 UTC (rev 49152)
+++ 
branches/soc-2012-swiss_cheese/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
   2012-07-23 20:13:24 UTC (rev 49153)
@@ -113,7 +113,7 @@
        hinterlace_mask[32] = 0;
 
        m_prevafvalue = GPU_get_anisotropic();
-
+       
        if (m_storage_type == RAS_VBO /*|| m_storage_type == RAS_AUTO_STORAGE 
&& GLEW_ARB_vertex_buffer_object*/)
        {
                m_storage = new RAS_StorageVBO(&m_texco_num, m_texco, 
&m_attrib_num, m_attrib);
@@ -159,13 +159,13 @@
        glDisable(GL_ALPHA_TEST);
 
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-#include FAKE_GL_MODE
+
        //m_last_alphablend = GPU_BLEND_SOLID;
        GPU_set_material_alpha_blend(GPU_BLEND_SOLID);
 
        glFrontFace(GL_CCW);
        m_last_frontface = true;
-
+#include FAKE_GL_MODE
        m_redback = 0.4375;
        m_greenback = 0.4375;
        m_blueback = 0.4375;
@@ -302,9 +302,10 @@
 {
 
        m_storage->Exit();
-
+#include REAL_GL_MODE
        glEnable(GL_CULL_FACE);
        glEnable(GL_DEPTH_TEST);
+#include FAKE_GL_MODE
        glClearDepth(1.0); 
        glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
        glClearColor(m_redback, m_greenback, m_blueback, m_alphaback);
@@ -343,13 +344,13 @@
 
        glDisable(GL_BLEND);
        glDisable(GL_ALPHA_TEST);
-#include FAKE_GL_MODE
+
        //m_last_alphablend = GPU_BLEND_SOLID;
        GPU_set_material_alpha_blend(GPU_BLEND_SOLID);
 
        glFrontFace(GL_CCW);
        m_last_frontface = true;
-
+#include FAKE_GL_MODE
        glShadeModel(GL_SMOOTH);
 
        glEnable(GL_MULTISAMPLE_ARB);
@@ -363,12 +364,14 @@
 
 void RAS_OpenGLRasterizer::SetDrawingMode(int drawingmode)
 {
+#include REAL_GL_MODE
        m_drawingmode = drawingmode;
 
        if (m_drawingmode == KX_WIREFRAME)
                glDisable(GL_CULL_FACE);
 
        m_storage->SetDrawingMode(drawingmode);
+#include FAKE_GL_MODE
 }
 
 int RAS_OpenGLRasterizer::GetDrawingMode()
@@ -706,7 +709,7 @@
 
                                // find the right opengl attribute
                                glattrib = -1;
-                               if (GLEW_ARB_vertex_program)
+                               if (GPU_EXT_GLSL_VERTEX_ENABLED)
                                        for (unit=0; unit<m_attrib_num; unit++)
                                                if (m_attrib[unit] == 
RAS_TEXCO_UV)
                                                        glattrib = unit;
@@ -752,6 +755,7 @@
 
 void RAS_OpenGLRasterizer::IndexPrimitives(RAS_MeshSlot& ms)
 {
+       gpuMatrixCommit();
        if (ms.m_pDerivedMesh)
                m_failsafe_storage->IndexPrimitives(ms);
        else
@@ -760,6 +764,7 @@
 
 void RAS_OpenGLRasterizer::IndexPrimitivesMulti(RAS_MeshSlot& ms)
 {
+       gpuMatrixCommit();
        if (ms.m_pDerivedMesh)
                m_failsafe_storage->IndexPrimitivesMulti(ms);
        else
@@ -976,10 +981,12 @@
 
 void RAS_OpenGLRasterizer::SetCullFace(bool enable)
 {
+#include REAL_GL_MODE
        if (enable)
                glEnable(GL_CULL_FACE);
        else
                glDisable(GL_CULL_FACE);
+#include FAKE_GL_MODE
 }
 
 void RAS_OpenGLRasterizer::SetLines(bool enable)
@@ -1058,7 +1065,7 @@
 {
        GPU_set_material_alpha_blend(alphablend);
 }
-
+#include REAL_GL_MODE
 void RAS_OpenGLRasterizer::SetFrontFace(bool ccw)
 {
        if (m_last_frontface == ccw)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to