From 48dbedafef905c2838e6cb845c09623da2fa9a20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mart=C3=ADn=20Lucas=20Golini?= Date: Wed, 5 Mar 2025 22:04:04 -0300 Subject: [PATCH] Fix OpenGL 3 Core Profile vertex buffers on macOS (fixes ecode console rendering when using 3 CP). Disable OpenGL 3 renderer on macOS. --- src/eepp/graphics/renderer/renderer.cpp | 2 ++ src/eepp/graphics/renderer/renderergl3cp.cpp | 2 +- src/eepp/graphics/vertexbuffer.cpp | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/eepp/graphics/renderer/renderer.cpp b/src/eepp/graphics/renderer/renderer.cpp index fcf5313b4..79326d41f 100644 --- a/src/eepp/graphics/renderer/renderer.cpp +++ b/src/eepp/graphics/renderer/renderer.cpp @@ -118,7 +118,9 @@ std::vector Renderer::getAvailableGraphicsLibraryVersion vers.emplace_back( GLv_2 ); #endif #ifdef EE_GL3_ENABLED +#if EE_PLATFORM != EE_PLATFORM_MACOS vers.emplace_back( GLv_3 ); +#endif vers.emplace_back( GLv_3CP ); vers.emplace_back( GLv_ES2 ); #endif diff --git a/src/eepp/graphics/renderer/renderergl3cp.cpp b/src/eepp/graphics/renderer/renderergl3cp.cpp index ce250dbf6..6432fe6d9 100644 --- a/src/eepp/graphics/renderer/renderergl3cp.cpp +++ b/src/eepp/graphics/renderer/renderergl3cp.cpp @@ -443,7 +443,7 @@ void RendererGL3CP::texCoordPointer( int size, unsigned int type, int stride, co } int RendererGL3CP::getStateIndex( const Uint32& State ) { - eeASSERT( State < EEGL_ARRAY_STATES_COUNT ); + eeASSERT( State < EEGL_ARRAY_STATES_COUNT || State == EEGL_TEXTURE_COORD_ARRAY ); if ( EEGL_TEXTURE_COORD_ARRAY == State ) return mTextureUnits[mCurActiveTex]; diff --git a/src/eepp/graphics/vertexbuffer.cpp b/src/eepp/graphics/vertexbuffer.cpp index 05eb67f80..241a738fa 100644 --- a/src/eepp/graphics/vertexbuffer.cpp +++ b/src/eepp/graphics/vertexbuffer.cpp @@ -10,7 +10,7 @@ namespace EE { namespace Graphics { VertexBuffer* VertexBuffer::New( const Uint32& vertexFlags, PrimitiveType drawType, const Int32& reserveVertexSize, const Int32& reserveIndexSize, VertexBufferUsageType usageType ) { - if ( GLi->isExtension( EEGL_ARB_vertex_buffer_object ) ) + if ( GLi->isExtension( EEGL_ARB_vertex_buffer_object ) || GLi->version() == GLv_3CP ) return eeNew( VertexBufferVBO, ( vertexFlags, drawType, reserveVertexSize, reserveIndexSize, usageType ) );