[Cogl] [PATCH 5/5] examples/cogl-texture-pixmap-x11: Add a --stereo command line option

otaylor at redhat.com otaylor at redhat.com
Thu Jul 3 10:51:12 PDT 2014


From: "Owen W. Taylor" <otaylor at fishsoup.net>

If --stereo is passed, then the texture pixmap is created as a stereo
texture pixmap, and also, if passed in conjunction with --gears,
glxgears is also run with the -stereo option.
---
 examples/cogl-x11-tfp.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/examples/cogl-x11-tfp.c b/examples/cogl-x11-tfp.c
index ea0a0b0..45399f5 100644
--- a/examples/cogl-x11-tfp.c
+++ b/examples/cogl-x11-tfp.c
@@ -27,12 +27,13 @@
 static pid_t gears_pid = 0;
 
 static void
-spawn_gears (void)
+spawn_gears (CoglBool stereo)
 {
   pid_t pid = fork();
 
   if (pid == 0)
     execlp ("glxgears", "glxgears",
+            stereo ? "-stereo" : NULL,
             NULL);
 
   gears_pid = pid;
@@ -143,6 +144,7 @@ main (int argc, char **argv)
   Atom atom_wm_delete_window;
   int screen;
   CoglBool gears = FALSE;
+  CoglBool stereo = FALSE;
   Window tfp_xwin = None;
   Pixmap pixmap;
   CoglTexturePixmapX11 *tfp;
@@ -154,9 +156,11 @@ main (int argc, char **argv)
     {
       if (strcmp (argv[i], "--gears") == 0)
         gears = TRUE;
+      else if (strcmp (argv[i], "--stereo") == 0)
+        stereo = TRUE;
       else
         {
-          g_printerr ("Usage: cogl-x11-tfp [--gears]\n");
+          g_printerr ("Usage: cogl-x11-tfp [--gears] [--stereo]\n");
           return 1;
         }
     }
@@ -188,7 +192,7 @@ main (int argc, char **argv)
 
   if (gears)
     {
-      spawn_gears ();
+      spawn_gears (stereo);
       while (TRUE)
         {
           tfp_xwin = find_gears_toplevel (xdpy, None);
@@ -320,7 +324,10 @@ main (int argc, char **argv)
 
   pixmap = XCompositeNameWindowPixmap (xdpy, tfp_xwin);
 
-  tfp = cogl_texture_pixmap_x11_new (ctx, pixmap, TRUE, &error);
+  if (stereo)
+    tfp = cogl_texture_pixmap_x11_new_stereo (ctx, pixmap, TRUE, &error);
+  else
+    tfp = cogl_texture_pixmap_x11_new (ctx, pixmap, TRUE, &error);
   if (!tfp)
     {
       fprintf (stderr, "Failed to create CoglTexturePixmapX11: %s",
-- 
1.9.3



More information about the Cogl mailing list