[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