Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/engines/common


Modified Files:
        evas_pipe.c 


Log Message:


a few things.

1. disable viewports other than 1:1 at 0,0
2. remove output space coorsds for pointer.
3. remove geom caching
4. make threaded pipelined engine a runtime detect if u have > 1 cpu.
5. pthread build default if u have pthread.h and sched.h

===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/engines/common/evas_pipe.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- evas_pipe.c 15 Nov 2006 16:44:34 -0000      1.2
+++ evas_pipe.c 16 Nov 2006 03:20:24 -0000      1.3
@@ -123,12 +123,14 @@
 #ifdef BUILD_PTHREAD
    int i, y, h;
    
+   if (thread_num == 1) return;
    if (thread_num == 0)
      {
        int cpunum;
        
        cpunum = evas_common_cpu_count();
        thread_num = cpunum;
+       if (thread_num == 1) return;
        pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1);
        for (i = 0; i < thread_num; i++)
          {
@@ -176,6 +178,7 @@
             /* send startsignal */
 //          printf("START %i\n", i);
      }
+   /* tell worker threads to start */
    pthread_barrier_init(&(thbarrier[1]), NULL, thread_num + 1);
    pthread_barrier_wait(&(thbarrier[0]));
    pthread_barrier_destroy(&(thbarrier[0]));
@@ -191,26 +194,27 @@
 
    if (!im->pipe) return;
 #ifdef BUILD_PTHREAD
-   /* FIXME: PTHREAD join all threads here (if not finished) or begin then join
-    * otherwise just process pipe */
+   if (thread_num > 1)
      {
+       /* sync worker threads */
        pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1);
        pthread_barrier_wait(&(thbarrier[1]));
        pthread_barrier_destroy(&(thbarrier[1]));
 //     printf("DONE\n");
      }
-   
-#else   
-   /* process pipe - 1 thead */
-   for (p = im->pipe; p; p = (RGBA_Pipe *)((Evas_Object_List *)p)->next)
+   else
+#endif
      {
-       for (i = 0; i < p->op_num; i++)
+       /* process pipe - 1 thead */
+       for (p = im->pipe; p; p = (RGBA_Pipe *)((Evas_Object_List *)p)->next)
          {
-            if (p->op[i].op_func)
-              p->op[i].op_func(im, &(p->op[i]), NULL);
+            for (i = 0; i < p->op_num; i++)
+              {
+                 if (p->op[i].op_func)
+                   p->op[i].op_func(im, &(p->op[i]), NULL);
+              }
          }
      }
-#endif   
    evas_common_cpu_end_opt();
    evas_common_pipe_free(im);
 }



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to