render: Refactored to support dynamic render target setup.
authorTaekyun Kim <tkq.kim@samsung.com>
Wed, 17 Jun 2015 09:30:15 +0000 (18:30 +0900)
committerTaekyun Kim <tkq.kim@samsung.com>
Tue, 7 Jul 2015 06:56:50 +0000 (15:56 +0900)
commit69add4ab0d1b22cf8da411c998a9652b7f8e5196
tree5e5ad35fcbec25f3b15c7ebe6f9843c7922d033f
parentc0537a5fa6a3df88b58eb0c928a33aa4222ba324
render: Refactored to support dynamic render target setup.

Now, we can switch the render target of a renderer dynamically. With this, we
can create one EGLContext for multiple native windows so that we can save OpenGL
resources and texture download cost.

Additionally, some renderer APIs are added for surface attach and damage flush.

Modules that were using old APIs are modified to use new APIs. Essentially, the
root object (i.e. pepper_drm_t) creates renderers, and each output chooses its
desired renderer and points to the renderer. pepper_render_target_t is created
for an output and it is set as a render target of the renderer when repaint.

Some messy codes are cleaned up while rewriting for the new APIs. But still got
a lot more, especially, codes taken from weston.

Change-Id: I5c9796c44f74efa3aa735396f58c6499a817937b
19 files changed:
drm/src/drm-internal.h
drm/src/drm-output.c
fbdev/src/fbdev-common.c
fbdev/src/fbdev-internal.h
fbdev/src/fbdev-output.c
render/src/gl-renderer.c
render/src/pepper-gl-renderer.h
render/src/pepper-pixman-renderer.h
render/src/pepper-render-internal.h
render/src/pepper-render.h
render/src/pixman-renderer.c
render/src/renderer.c
wayland/src/wayland-common.c
wayland/src/wayland-internal.h
wayland/src/wayland-output.c
wayland/src/wayland-shm-buffer.c
x11/src/x11-common.c
x11/src/x11-internal.h
x11/src/x11-output.c