mirror of https://github.com/encounter/SDL.git
Fixed bug 4542 - Image flipped vertically when rendering on texture
Have to recompute viewport because projection/glOrtho is different wether rendering is on target texture or not
This commit is contained in:
parent
28f54ee439
commit
b28e956b8c
|
@ -773,6 +773,8 @@ GL_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
return SDL_SetError("Render targets not supported by OpenGL");
|
return SDL_SetError("Render targets not supported by OpenGL");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data->drawstate.viewport_dirty = SDL_TRUE;
|
||||||
|
|
||||||
if (texture == NULL) {
|
if (texture == NULL) {
|
||||||
data->glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
data->glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -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_PROFILE_MASK, &profile_mask);
|
||||||
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, &major);
|
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, &major);
|
||||||
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, &minor);
|
SDL_GL_GetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, &minor);
|
||||||
|
|
||||||
window_flags = SDL_GetWindowFlags(window);
|
window_flags = SDL_GetWindowFlags(window);
|
||||||
if (!(window_flags & SDL_WINDOW_OPENGL) ||
|
if (!(window_flags & SDL_WINDOW_OPENGL) ||
|
||||||
profile_mask == SDL_GL_CONTEXT_PROFILE_ES || major != RENDERER_CONTEXT_MAJOR || minor != RENDERER_CONTEXT_MINOR) {
|
profile_mask == SDL_GL_CONTEXT_PROFILE_ES || major != RENDERER_CONTEXT_MAJOR || minor != RENDERER_CONTEXT_MINOR) {
|
||||||
|
|
|
@ -503,6 +503,8 @@ GLES_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
return SDL_SetError("Can't enable render target support in this renderer");
|
return SDL_SetError("Can't enable render target support in this renderer");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data->drawstate.viewport_dirty = SDL_TRUE;
|
||||||
|
|
||||||
if (texture == NULL) {
|
if (texture == NULL) {
|
||||||
data->glBindFramebufferOES(GL_FRAMEBUFFER_OES, data->window_framebuffer);
|
data->glBindFramebufferOES(GL_FRAMEBUFFER_OES, data->window_framebuffer);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -1748,6 +1748,8 @@ GLES2_SetRenderTarget(SDL_Renderer * renderer, SDL_Texture * texture)
|
||||||
GLES2_TextureData *texturedata = NULL;
|
GLES2_TextureData *texturedata = NULL;
|
||||||
GLenum status;
|
GLenum status;
|
||||||
|
|
||||||
|
data->drawstate.viewport_dirty = SDL_TRUE;
|
||||||
|
|
||||||
if (texture == NULL) {
|
if (texture == NULL) {
|
||||||
data->glBindFramebuffer(GL_FRAMEBUFFER, data->window_framebuffer);
|
data->glBindFramebuffer(GL_FRAMEBUFFER, data->window_framebuffer);
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue