diff --git a/modules/gfx/src/scene.cc b/modules/gfx/src/scene.cc index 38e57d30e1fb152edcabcac77ecebe1c20e6286e..94bd739bc7439dc3b89fff6a37fd6f4f364344f8 100644 --- a/modules/gfx/src/scene.cc +++ b/modules/gfx/src/scene.cc @@ -1961,6 +1961,9 @@ void Scene::stereo_projection(int view) void Scene::render_stereo() { + glPushAttrib(GL_ALL_ATTRIB_BITS); + glPushClientAttrib(GL_ALL_ATTRIB_BITS); + int old_stereo_eye=stereo_eye_; stereo_eye_=-1; stereo_projection(-1); @@ -1978,6 +1981,7 @@ void Scene::render_stereo() stereo_eye_=1; stereo_projection(1); render_scene(); + glEnable(GL_TEXTURE_2D); #if OST_SHADER_SUPPORT_ENABLED if(OST_GL_VERSION_2_0) { @@ -1994,7 +1998,6 @@ void Scene::render_stereo() Shader::Instance().Activate(""); #endif - glPushAttrib(GL_ALL_ATTRIB_BITS); glDisable(GL_DEPTH_TEST); glDisable(GL_LIGHTING); glDisable(GL_COLOR_MATERIAL); @@ -2015,7 +2018,7 @@ void Scene::render_stereo() glLoadIdentity(); if(stereo_mode_==2) { - // draw interlace lines in stencil buffer + // draw interlaced lines in stencil buffer glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLineWidth(1.0); glEnable(GL_STENCIL_TEST); @@ -2080,10 +2083,14 @@ void Scene::render_stereo() glEnd(); // restore settings + glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, 0, 0, 0); + glBindTexture(GL_TEXTURE_2D, 0); + glDisable(GL_TEXTURE_2D); glMatrixMode(GL_PROJECTION); glPopMatrix(); glMatrixMode(GL_MODELVIEW); glPopMatrix(); + glPopClientAttrib(); glPopAttrib(); #if OST_SHADER_SUPPORT_ENABLED Shader::Instance().PopProgram(); diff --git a/modules/gfx/src/vertex_array.cc b/modules/gfx/src/vertex_array.cc index be735a3e85db09613302313c3c3f7612bba2f455..b9c45e5a7ce54f274b2b1e0b029f100fd81772ec 100644 --- a/modules/gfx/src/vertex_array.cc +++ b/modules/gfx/src/vertex_array.cc @@ -109,7 +109,7 @@ unsigned int IndexedVertexArray::GetFormat() void IndexedVertexArray::Cleanup() { if(initialized_) { - glDeleteTextures(1,&tex_id_); + //glDeleteTextures(1,&tex_id_); glDeleteLists(outline_mat_dlist_,1); #if OST_SHADER_SUPPORT_ENABLED glDeleteBuffers(7,buffer_id_); @@ -432,6 +432,12 @@ void IndexedVertexArray::RenderGL() glPushAttrib(GL_ALL_ATTRIB_BITS); glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT); + + if(use_tex_) { + glEnable(GL_TEXTURE_2D); + } else { + glDisable(GL_TEXTURE_2D); + } if(outline_mode_>0) { LOG_TRACE("outline rendering"); @@ -694,7 +700,7 @@ void IndexedVertexArray::Reset() outline_exp_factor_=0.1; outline_exp_color_=Color(0,0,0); draw_normals_=false; - use_tex_=true; + use_tex_=false; } void IndexedVertexArray::FlagRefresh()