#else
// FIXME: viewport goopies
gc->change.size = 1;
+#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
+ if (gc->shader.surface == gc->def_surface)
+ glBindFramebuffer(GL_FRAMEBUFFER_OES, 0);
+ else
+ glBindFramebuffer(GL_FRAMEBUFFER_OES, surface->tex->pt->fb);
+#else
if (gc->shader.surface == gc->def_surface)
glBindFramebuffer(GL_FRAMEBUFFER_EXT, 0);
else
glBindFramebuffer(GL_FRAMEBUFFER_EXT, surface->tex->pt->fb);
+#endif
_evas_gl_common_viewport_set(gc);
#endif
}
pt->dataformat = GL_UNSIGNED_BYTE;
pt->references = 0;
#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
- // FIXME: XXX render-to-texture for gles2
+ glGenTextures(1, &(pt->texture));
+ glBindTexture(GL_TEXTURE_2D, pt->texture);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ _tex_2d(pt->intformat, w, h, pt->format, pt->dataformat);
+ glGenFramebuffers(1, &(pt->fb));
+ glBindFramebuffer(GL_FRAMEBUFFER_OES, pt->fb);
+ glFramebufferTexture2DEXT(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_TEXTURE_2D, pt->texture, 0);
+ glBindFramebufferEXT(GL_FRAMEBUFFER_OES, 0);
+ glBindTexture(GL_TEXTURE_2D, gc->shader.cur_tex);
#else
glGenTextures(1, &(pt->texture));
glBindTexture(GL_TEXTURE_2D, pt->texture);