From 2237a6a04c11fa9253f68235fbe2bc060777cecd Mon Sep 17 00:00:00 2001 From: Lioncash Date: Sat, 2 Sep 2017 18:05:49 -0400 Subject: [PATCH] OGL/VertexManager: Make vertex and index buffer handles private These are only ever read, but not written to outside of the VertexManager class. --- Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp | 4 ++-- Source/Core/VideoBackends/OGL/Render.cpp | 2 +- Source/Core/VideoBackends/OGL/VertexManager.cpp | 10 ++++++++++ Source/Core/VideoBackends/OGL/VertexManager.h | 8 +++++--- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp b/Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp index 816cdf3754..df24809ae0 100644 --- a/Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp +++ b/Source/Core/VideoBackends/OGL/NativeVertexFormat.cpp @@ -60,8 +60,8 @@ GLVertexFormat::GLVertexFormat(const PortableVertexDeclaration& _vtx_decl) ProgramShaderCache::BindVertexFormat(this); // the element buffer is bound directly to the vao, so we must it set for every vao - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vm->m_index_buffers); - glBindBuffer(GL_ARRAY_BUFFER, vm->m_vertex_buffers); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vm->GetIndexBufferHandle()); + glBindBuffer(GL_ARRAY_BUFFER, vm->GetVertexBufferHandle()); SetPointer(SHADER_POSITION_ATTRIB, vertex_stride, _vtx_decl.position); diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp index adc58dff28..7e36f0be22 100644 --- a/Source/Core/VideoBackends/OGL/Render.cpp +++ b/Source/Core/VideoBackends/OGL/Render.cpp @@ -1796,7 +1796,7 @@ void Renderer::RestoreAPIState() ProgramShaderCache::BindLastVertexFormat(); const VertexManager* const vm = static_cast(g_vertex_manager.get()); - glBindBuffer(GL_ARRAY_BUFFER, vm->m_vertex_buffers); + glBindBuffer(GL_ARRAY_BUFFER, vm->GetVertexBufferHandle()); OGLTexture::SetStage(); } diff --git a/Source/Core/VideoBackends/OGL/VertexManager.cpp b/Source/Core/VideoBackends/OGL/VertexManager.cpp index 9f8d87eceb..19b9734be2 100644 --- a/Source/Core/VideoBackends/OGL/VertexManager.cpp +++ b/Source/Core/VideoBackends/OGL/VertexManager.cpp @@ -61,6 +61,16 @@ void VertexManager::DestroyDeviceObjects() s_indexBuffer.reset(); } +GLuint VertexManager::GetVertexBufferHandle() const +{ + return m_vertex_buffers; +} + +GLuint VertexManager::GetIndexBufferHandle() const +{ + return m_index_buffers; +} + void VertexManager::PrepareDrawBuffers(u32 stride) { u32 vertex_data_size = IndexGenerator::GetNumVerts() * stride; diff --git a/Source/Core/VideoBackends/OGL/VertexManager.h b/Source/Core/VideoBackends/OGL/VertexManager.h index 6a4599d48e..de7cf08265 100644 --- a/Source/Core/VideoBackends/OGL/VertexManager.h +++ b/Source/Core/VideoBackends/OGL/VertexManager.h @@ -37,9 +37,8 @@ public: void CreateDeviceObjects() override; void DestroyDeviceObjects() override; - // NativeVertexFormat use this - GLuint m_vertex_buffers; - GLuint m_index_buffers; + GLuint GetVertexBufferHandle() const; + GLuint GetIndexBufferHandle() const; protected: void ResetBuffer(u32 stride) override; @@ -49,6 +48,9 @@ private: void vFlush() override; void PrepareDrawBuffers(u32 stride); + GLuint m_vertex_buffers; + GLuint m_index_buffers; + // Alternative buffers in CPU memory for primatives we are going to discard. std::vector m_cpu_v_buffer; std::vector m_cpu_i_buffer;