Fix an optimiaze OpenGL rendere (#320)

Co-authored-by: Christian Semmler <mail@csemmler.com>
This commit is contained in:
Anders Jenbo 2025-06-16 19:49:17 +02:00 committed by GitHub
parent 79726d25a4
commit 1689a0063f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -271,7 +271,7 @@ GLMeshCacheEntry GLUploadMesh(const MeshGroup& meshGroup, bool useVBOs)
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, cache.ibo); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, cache.ibo);
glBufferData( glBufferData(
GL_ELEMENT_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER,
cache.indices.size() * sizeof(Uint32), cache.indices.size() * sizeof(cache.indices[0]),
cache.indices.data(), cache.indices.data(),
GL_STATIC_DRAW GL_STATIC_DRAW
); );
@ -371,9 +371,9 @@ HRESULT OpenGL1Renderer::BeginFrame()
glBindFramebuffer(GL_FRAMEBUFFER, m_fbo); glBindFramebuffer(GL_FRAMEBUFFER, m_fbo);
glViewport(0, 0, m_width, m_height); glViewport(0, 0, m_width, m_height);
glEnable(GL_BLEND); glDisable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glEnable(GL_LIGHTING); glEnable(GL_LIGHTING);
glEnable(GL_COLOR_MATERIAL); glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
@ -454,6 +454,8 @@ HRESULT OpenGL1Renderer::BeginFrame()
void OpenGL1Renderer::EnableTransparency() void OpenGL1Renderer::EnableTransparency()
{ {
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glDepthMask(GL_FALSE); glDepthMask(GL_FALSE);
} }
@ -540,7 +542,6 @@ void OpenGL1Renderer::SubmitDraw(
HRESULT OpenGL1Renderer::FinalizeFrame() HRESULT OpenGL1Renderer::FinalizeFrame()
{ {
glDepthMask(GL_TRUE);
glReadPixels(0, 0, m_width, m_height, GL_RGBA, GL_UNSIGNED_BYTE, m_renderedImage->pixels); glReadPixels(0, 0, m_width, m_height, GL_RGBA, GL_UNSIGNED_BYTE, m_renderedImage->pixels);
glBindFramebuffer(GL_FRAMEBUFFER, 0); glBindFramebuffer(GL_FRAMEBUFFER, 0);