# HG changeset patch # User Gabriel Jacobo # Date 1327278987 10800 # Branch RenderCopyEx # Node ID 292a0bce2ae34ff1b8079bbc48c3a0f490ca6b2e # Parent e0521de318b298524df3577ddbdcbedcda1309e7 SetRenderTarget fixes diff -r e0521de318b2 -r 292a0bce2ae3 src/render/SDL_render.c --- a/src/render/SDL_render.c dom ene 22 19:47:17 2012 -0300 +++ b/src/render/SDL_render.c dom ene 22 21:36:27 2012 -0300 @@ -847,9 +847,7 @@ } renderer->target = texture; - if (renderer->SetRenderTarget(renderer, texture) < 0) { - return -1; - } + if (texture) { viewport.x = 0; @@ -863,6 +861,10 @@ return -1; } + if (renderer->SetRenderTarget(renderer, texture) < 0) { + return -1; + } + /* All set! */ return 0; } diff -r e0521de318b2 -r 292a0bce2ae3 src/render/opengles/SDL_render_gles.c --- a/src/render/opengles/SDL_render_gles.c dom ene 22 19:47:17 2012 -0300 +++ b/src/render/opengles/SDL_render_gles.c dom ene 22 21:36:27 2012 -0300 @@ -593,6 +593,13 @@ } texturedata = (GLES_TextureData *) texture->driverdata; + if (!texturedata) { + if (texture->native && texture->native->driverdata) { + texture = texture->native; + texturedata = texture->driverdata; + } + else return -1; + } data->glBindFramebufferOES(GL_FRAMEBUFFER_OES, texturedata->fbo->FBO); /* TODO: check if texture pixel format allows this operation */ data->glFramebufferTexture2DOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, texturedata->type, texturedata->texture, 0);