diff options
author | Vasiliy Ulyanov <v.ulyanov@samsung.com> | 2015-07-01 10:49:30 +0300 |
---|---|---|
committer | jinhyung.jo <jinhyung.jo@samsung.com> | 2015-08-04 17:48:39 +0900 |
commit | fd48cd8b5fdd8f25fa349df5dda7d22ec0399103 (patch) | |
tree | 6ba16dd4566316f0d10c12a22a879753cc88aa00 | |
parent | eba4ad167a41a44eab8aa5bb0f1ce6cb21c2ffa6 (diff) | |
download | emulator-yagl-fd48cd8b5fdd8f25fa349df5dda7d22ec0399103.tar.gz emulator-yagl-fd48cd8b5fdd8f25fa349df5dda7d22ec0399103.tar.bz2 emulator-yagl-fd48cd8b5fdd8f25fa349df5dda7d22ec0399103.zip |
YaGL: mark eglMakeCurrent call as 'flushing'
According to EGL spec the currently bound context needs
to be flushed before being released or another context
is made current.
Without flushing we may miss some GL calls if there are
several threads rendering to a single context.
Change-Id: Id6680a086d895ba94b4c279b18443d93017838d1
Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
-rw-r--r-- | EGL/yagl_egl_calls.in | 2 | ||||
-rw-r--r-- | EGL/yagl_host_egl_calls.c | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/EGL/yagl_egl_calls.in b/EGL/yagl_egl_calls.in index 90fabea..0bdbaf3 100644 --- a/EGL/yagl_egl_calls.in +++ b/EGL/yagl_egl_calls.in @@ -12,7 +12,7 @@ EGLBoolean eglReleaseThread(EGLint &error) EGLBoolean eglSurfaceAttrib(yagl_host_handle dpy, yagl_host_handle surface, EGLint attribute, EGLint value, EGLint &error) yagl_host_handle eglCreateContext(yagl_host_handle dpy, yagl_host_handle config, yagl_host_handle share_context, const EGLint *attrib_list, EGLint &error) EGLBoolean eglDestroyContext(yagl_host_handle dpy, yagl_host_handle ctx, EGLint &error) -void eglMakeCurrent(yagl_host_handle dpy, yagl_host_handle draw, yagl_host_handle read, yagl_host_handle ctx) +@void eglMakeCurrent(yagl_host_handle dpy, yagl_host_handle draw, yagl_host_handle read, yagl_host_handle ctx) EGLBoolean eglQueryContext(yagl_host_handle dpy, yagl_host_handle ctx, EGLint attribute, EGLint &value, EGLint &error) @void eglSwapBuffers(yagl_host_handle dpy, yagl_host_handle surface) @void eglCopyBuffers(yagl_host_handle dpy, yagl_host_handle surface) diff --git a/EGL/yagl_host_egl_calls.c b/EGL/yagl_host_egl_calls.c index 8070c46..766748a 100644 --- a/EGL/yagl_host_egl_calls.c +++ b/EGL/yagl_host_egl_calls.c @@ -265,6 +265,7 @@ void yagl_host_eglMakeCurrent(yagl_host_handle dpy, yagl_host_handle draw, yagl_ yagl_transport_put_out_yagl_host_handle(t, read); yagl_transport_put_out_yagl_host_handle(t, ctx); yagl_transport_end(t); + yagl_transport_flush(t, NULL); } /* |