BGE: unfortunately VA+list still doesn't work on ATI card, so put a specific check for ATI.

This commit is contained in:
Benoit Bolsee
2009-05-07 19:36:12 +00:00
parent f590ffdadc
commit 1f5ccd1928
2 changed files with 6 additions and 3 deletions

View File

@@ -104,9 +104,11 @@ bool RAS_ListSlot::End()
RAS_ListRasterizer::RAS_ListRasterizer(RAS_ICanvas* canvas, bool useVertexArrays, bool lock)
: RAS_VAOpenGLRasterizer(canvas, lock),
mUseVertexArrays(useVertexArrays)
mUseVertexArrays(useVertexArrays),
mATI(false)
{
// --
if (!strcmp((const char*)glGetString(GL_VENDOR), "ATI Technologies Inc."))
mATI = true;
}
RAS_ListRasterizer::~RAS_ListRasterizer()
@@ -214,7 +216,7 @@ void RAS_ListRasterizer::IndexPrimitivesMulti(RAS_MeshSlot& ms)
// workaround: note how we do not use vertex arrays for making display
// lists, since glVertexAttribPointerARB doesn't seem to work correct
// in display lists on ATI? either a bug in the driver or in Blender ..
if (mUseVertexArrays && /*!localSlot &&*/ !ms.m_pDerivedMesh)
if (mUseVertexArrays && !mATI && !ms.m_pDerivedMesh)
RAS_VAOpenGLRasterizer::IndexPrimitivesMulti(ms);
else
RAS_OpenGLRasterizer::IndexPrimitivesMulti(ms);