Skip to content

Commit

Permalink
Fixed bug 4542 - Image flipped vertically when rendering on texture
Browse files Browse the repository at this point in the history
Have to recompute  viewport because projection/glOrtho is different
wether rendering is on target texture or not
  • Loading branch information
1bsyl committed Mar 12, 2019
1 parent 28f54ee commit b28e956
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/render/opengl/SDL_render_gl.c
Expand Up @@ -773,6 +773,8 @@ GL_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture)
return SDL_SetError("Render targets not supported by OpenGL");
}

data->drawstate.viewport_dirty = SDL_TRUE;

if (texture == NULL) {
data->glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
return 0;
Expand Down Expand Up @@ -1525,7 +1527,7 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags)
SDL_GL_GetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, &profile_mask);
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, &major);
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, &minor);

window_flags = SDL_GetWindowFlags(window);
if (!(window_flags & SDL_WINDOW_OPENGL) ||
profile_mask == SDL_GL_CONTEXT_PROFILE_ES || major != RENDERER_CONTEXT_MAJOR || minor != RENDERER_CONTEXT_MINOR) {
Expand Down
2 changes: 2 additions & 0 deletions src/render/opengles/SDL_render_gles.c
Expand Up @@ -503,6 +503,8 @@ GLES_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture)
return SDL_SetError("Can't enable render target support in this renderer");
}

data->drawstate.viewport_dirty = SDL_TRUE;

if (texture == NULL) {
data->glBindFramebufferOES(GL_FRAMEBUFFER_OES, data->window_framebuffer);
return 0;
Expand Down
2 changes: 2 additions & 0 deletions src/render/opengles2/SDL_render_gles2.c
Expand Up @@ -1748,6 +1748,8 @@ GLES2_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture)
GLES2_TextureData *texturedata = NULL;
GLenum status;

data->drawstate.viewport_dirty = SDL_TRUE;

if (texture == NULL) {
data->glBindFramebuffer(GL_FRAMEBUFFER, data->window_framebuffer);
} else {
Expand Down

0 comments on commit b28e956

Please sign in to comment.