YaGL: Handle non-shareable OpenGL objects properly 34/13134/1
authorStanislav Vorobiov <s.vorobiov@samsung.com>
Wed, 30 Oct 2013 13:24:47 +0000 (17:24 +0400)
committerStanislav Vorobiov <s.vorobiov@samsung.com>
Wed, 30 Oct 2013 13:24:47 +0000 (17:24 +0400)
commit7cf9d43380fd2ec089f2879a0ae976cabf0b6ed6
tree2fa6eb97ede4c9e8d4f04f69e688ea73ede7e3bb
parent06ccb25234337695b38ea6d8c9f76d4183b46879
YaGL: Handle non-shareable OpenGL objects properly

In OpenGL 3.1 core profile framebuffers and
vertex arrays are non-shareable between contexts, this
means that it's not safe to delete these types of objects
like we did before. We now keep context id together with
framebuffers and vertex arrays and check it on
object deletion, if current context is different
from the one in which the object was created then
"ensure" context is selected and delete operation is
performed there. This makes sure that the object will
get deleted in case if OpenGL 2.1 is used and that
the delete operation is a no-op in case of OpenGL 3.1
core profile. In case of OpenGL 3.1 the object will
eventually be deleted once context is deleted

Change-Id: I4929a0590d96ae00e46d04a49b9b387a6673330b
13 files changed:
hw/yagl_apis/egl/yagl_host_egl_calls.c
hw/yagl_apis/gles/yagl_gles_api_ts.c
hw/yagl_apis/gles/yagl_host_gles_calls.c
hw/yagl_backends/egl_offscreen/yagl_egl_offscreen.c
hw/yagl_backends/egl_offscreen/yagl_egl_offscreen_context.c
hw/yagl_backends/egl_offscreen/yagl_egl_offscreen_display.c
hw/yagl_backends/egl_onscreen/yagl_egl_onscreen.c
hw/yagl_backends/egl_onscreen/yagl_egl_onscreen_context.c
hw/yagl_backends/egl_onscreen/yagl_egl_onscreen_context.h
hw/yagl_backends/egl_onscreen/yagl_egl_onscreen_surface.c
hw/yagl_egl_interface.h
hw/yagl_gles_driver.c
hw/yagl_gles_driver.h