trying to fix rendering of managed objects when a textured object comes along...

git-svn-id: svn://anubis/anaglym/trunk@174 99a6e188-d820-4881-8870-2d33a10e2619
This commit is contained in:
Josh Holtrop 2009-11-16 03:23:39 +00:00
parent cdfaf84c28
commit 6647f81dc0

View File

@ -906,19 +906,20 @@ void Engine::Object::createManagedObject()
/* prerequisite: m_args->size() is big enough */ /* prerequisite: m_args->size() is big enough */
void Engine::Object::render() void Engine::Object::render()
{ {
GLUquadric * quad = gluNewQuadric();
if (m_display_list <= 0) if (m_display_list <= 0)
m_display_list = glGenLists(1); m_display_list = glGenLists(1);
glNewList(m_display_list, GL_COMPILE); glNewList(m_display_list, GL_COMPILE);
GLUquadric * quad = gluNewQuadric(); glPushAttrib(GL_ENABLE_BIT);
if (m_texture != 0) if (m_texture != 0)
{ {
gluQuadricTexture(quad, 1); gluQuadricTexture(quad, 1);
glPushAttrib(GL_ENABLE_BIT);
glEnable(GL_TEXTURE_2D); glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, m_texture); glBindTexture(GL_TEXTURE_2D, m_texture);
} }
else else
{ {
glDisable(GL_TEXTURE_2D);
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, m_color); glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, m_color);
} }
switch (m_geom_type) switch (m_geom_type)
@ -1090,10 +1091,7 @@ void Engine::Object::render()
break; break;
} }
gluDeleteQuadric(quad); gluDeleteQuadric(quad);
if (m_texture != 0)
{
glPopAttrib(); glPopAttrib();
}
glEndList(); glEndList();
} }