diff options
-rw-r--r-- | EGL/yagl_render.c | 9 | ||||
-rw-r--r-- | GLES_common/yagl_gles_calls.in | 2 | ||||
-rw-r--r-- | GLES_common/yagl_host_gles_calls.c | 1 |
3 files changed, 10 insertions, 2 deletions
diff --git a/EGL/yagl_render.c b/EGL/yagl_render.c index eab10a1..0bcf932 100644 --- a/EGL/yagl_render.c +++ b/EGL/yagl_render.c @@ -35,6 +35,8 @@ #include "yagl_egl_state.h" #include "yagl_surface.h" #include "yagl_context.h" +#include "yagl_transport.h" +#include "yagl_state.h" void yagl_render_invalidate(int throttle) { @@ -63,5 +65,12 @@ void yagl_render_finish() if (draw_sfc) { draw_sfc->wait_gl(draw_sfc); + } else { + /* + * GL_OES_surfaceless_context: if current context has no draw_sfc + * we still need to ensure all the offscreen rendering is completed. + * Transport flush should be sufficient in this case. + */ + yagl_transport_flush(yagl_get_transport(), NULL); } } diff --git a/GLES_common/yagl_gles_calls.in b/GLES_common/yagl_gles_calls.in index f327328..e0cf14e 100644 --- a/GLES_common/yagl_gles_calls.in +++ b/GLES_common/yagl_gles_calls.in @@ -37,7 +37,7 @@ void glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLint offset, void glMapBuffer(GLuint buffer, const GLuint *ranges, GLvoid *data) void glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizei size) # Textures -@void glGenTextures(const GLuint *textures) +void glGenTextures(const GLuint *textures) void glBindTexture(GLenum target, GLuint texture) void glActiveTexture(GLenum texture) void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) diff --git a/GLES_common/yagl_host_gles_calls.c b/GLES_common/yagl_host_gles_calls.c index 86c4611..a810c02 100644 --- a/GLES_common/yagl_host_gles_calls.c +++ b/GLES_common/yagl_host_gles_calls.c @@ -519,7 +519,6 @@ void yagl_host_glGenTextures(const GLuint *textures, int32_t textures_count) yagl_transport_begin(t, yagl_api_id_gles, 35, 2 * 8, 0 * 8 + yagl_transport_array_size(textures, textures_count, sizeof(GLuint))); yagl_transport_put_out_array(t, textures, textures_count, sizeof(GLuint)); yagl_transport_end(t); - yagl_transport_flush(t, NULL); } /* |