@@ -177,9 +177,6 @@ ModernOpenGLRenderer::ModernOpenGLRenderer(SDL_Window *window) : AbstractRendere
177
177
glBindVertexArray (0 );
178
178
glBindBuffer (GL_ARRAY_BUFFER, 0 );
179
179
180
- MakeFramebuffer (0 , w, h);
181
- MakeFramebuffer (1 , w, h);
182
-
183
180
// Configure alpha blending.
184
181
glEnable (GL_BLEND);
185
182
glBlendFuncSeparate (GL_SRC_ALPHA, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE);
@@ -275,12 +272,15 @@ void ModernOpenGLRenderer::ApplyProjection()
275
272
glCheckErrors ();
276
273
}
277
274
278
- void ModernOpenGLRenderer::ApplyFrameBuffer ( )
275
+ void ModernOpenGLRenderer::UpdateViewRect ( int width, int height, float pixelRatio )
279
276
{
277
+ AbstractRenderer::UpdateViewRect (width, height, pixelRatio);
278
+
280
279
GLsizei w, h;
281
280
SDL_GL_GetDrawableSize (window, &w, &h);
282
- MakeFramebuffer (0 , w, h);
283
- MakeFramebuffer (1 , w, h);
281
+
282
+ AdjustFramebuffer (0 , w, h);
283
+ AdjustFramebuffer (1 , w, h);
284
284
}
285
285
286
286
void ModernOpenGLRenderer::LevelReset ()
@@ -575,8 +575,13 @@ std::unique_ptr<OpenGLShader> ModernOpenGLRenderer::LoadShader(const std::string
575
575
return std::make_unique<OpenGLShader>(*vertPath, *fragPath);
576
576
}
577
577
578
- void ModernOpenGLRenderer::MakeFramebuffer (short index, GLsizei width, GLsizei height)
578
+ void ModernOpenGLRenderer::AdjustFramebuffer (short index, GLsizei width, GLsizei height)
579
579
{
580
+ // Remove previous bound objects
581
+ glDeleteTextures (1 , &texture[index ]);
582
+ glDeleteFramebuffers (1 , &fbo[index ]);
583
+ glDeleteRenderbuffers (1 , &rbo[index ]);
584
+
580
585
// Create a framebuffer, texture, and renderbuffer for the HUD.
581
586
glGenFramebuffers (1 , &fbo[index ]);
582
587
glBindFramebuffer (GL_FRAMEBUFFER, fbo[index ]);
0 commit comments