Added Direct Rendering to Evas' window instead of an FBO in Evas_GL.
authorsung <sung@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 20 Jan 2012 12:29:14 +0000 (12:29 +0000)
committersung <sung@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 20 Jan 2012 12:29:14 +0000 (12:29 +0000)
commit0938d013f7ed092fa5cab1ab16b0addb2a8b5179
tree44eb042dc2cbb517c0032119f65fac5b2cc3fc45
parent6ea5fa7973d2ac0e66722b3ec79b33e95881fc85
Added Direct Rendering to Evas' window instead of an FBO in Evas_GL.

This optimization is significant for rendering to a large surface
because it'l save an extra copy overhead as well as an extra rendering pass.

To enable it, you can give EVAS_GL_OPTIONS_DIRECT hint in the surface
config options_bits. The following conditions have to be met in order
for evas to render directly into the Evas' window. If they are not met, the
engine will fallback to rendering to an FBO as it normally does.

conditions:
1.) All the GL calls have to be called using the pixel_get_callback function.
This is necessary for the evas object order to be maintained.
2.) Alpha must be disabled on the image ojbect that renders evas_gl.
3.) No rotation allowed.

One way to override above condition is to set EVAS_GL_DIRECT_OVERRIDE=1 but
there is no guarantee in its behavior.

Currently, this optimization is added for gl_x11 engine only.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@67388 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33
ChangeLog
NEWS
src/lib/canvas/evas_object_image.c
src/lib/include/evas_private.h
src/modules/engines/gl_x11/evas_engine.c
src/modules/engines/software_generic/evas_engine.c