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)
commitc3bc446a93727555fcb003b39702fb623e996a28
tree44eb042dc2cbb517c0032119f65fac5b2cc3fc45
parentea8dd87a4df7515dcdcf0cd5aa138b5a4c8c3886
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: http://svn.enlightenment.org/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