[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49153] branches/soc-2012-swiss_cheese/ source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp: Fix states for OpenGL ES.

Alexander Kuznetsov kuzsasha at gmail.com
Mon Jul 23 22:13:28 CEST 2012


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)




More information about the Bf-blender-cvs mailing list