big patch from Samsung SAIT (Advanced research group) for async multi-frame
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 21 May 2010 07:10:45 +0000 (07:10 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 21 May 2010 07:10:45 +0000 (07:10 +0000)
rendering. to turn on:

1.
configure with --enable-async-render
2.
export EVAS_RENDER_MODE=non-blocking

presto. necessitates some api swizzling (thus the expedite. ecore etc. changes)

the kind of results you get on a desktop:

http://www.rasterman.com/files/evas-async-vs-none.html

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/expedite@49087 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

AUTHORS
src/bin/engine_software_xlib.c
src/bin/main.c
src/bin/main.h

diff --git a/AUTHORS b/AUTHORS
index 1694b5f..414ee67 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,2 +1,4 @@
 The Rasterman (Carsten Haitzler) <raster@rasterman.com>
 Tim Horton <hortont424@gmail.com>
+Saumsung Electronics <tbd>
+Samsung SAIT <tbd>
index cdd7841..332b12e 100644 (file)
@@ -37,6 +37,16 @@ engine_software_xlib_args(const char *engine, int width, int height)
    einfo->info.depth = einfo->func.best_depth_get(0, disp, DefaultScreen(disp));
    einfo->info.rotation = 0;
    einfo->info.debug = 0;
+#ifdef EVAS_FRAME_QUEUING
+  {
+     char    *render_mode;
+     render_mode = getenv("EVAS_RENDER_MODE");
+     if (render_mode && !strcmp(render_mode, "non-blocking"))
+       {
+           einfo->render_mode = EVAS_RENDER_MODE_NONBLOCKING;
+       }
+  }
+#endif
    attr.backing_store = NotUseful;
    attr.colormap = einfo->info.colormap;
    attr.border_pixel = 0;
index 7f8ac7d..2b9158a 100644 (file)
@@ -1357,6 +1357,7 @@ int
 main(int argc, char **argv)
 {
    int i;
+   XInitThreads();
 
    evas_init();
    evas = evas_new();
index 2dfb0c2..1102783 100644 (file)
@@ -84,6 +84,8 @@ extern "C"
 #include "ui.h"
 #include "about.h"
 
+#define EVAS_FRAME_QUEUING     // for test
+
 #define OBNUM 128
 #define LOOPS 128