[Xquartz-changes] [181] AppleSGLX/trunk

source_changes at macosforge.org source_changes at macosforge.org
Thu Feb 19 16:09:02 PST 2009


Revision: 181
          http://trac.macosforge.org/projects/xquartz/changeset/181
Author:   gstaplin at apple.com
Date:     2009-02-19 16:09:01 -0800 (Thu, 19 Feb 2009)
Log Message:
-----------
Update the Makefile target dependency so that apple_xgl_api_stereo.c 
changes trigger a rebuild.

Update apple_xgl_api_stereo.c to implement glDrawBuffers slightly differently.

I realized that the user could specify multiple GL_BACK flags by accident
or perhaps on purpose.  This skips all GL_BACK and appends GL_BACK_LEFT
and GL_BACK_RIGHT to the end of bufs, if we had a GL_BACK.

Modified Paths:
--------------
    AppleSGLX/trunk/Makefile
    AppleSGLX/trunk/apple_xgl_api_stereo.c

Modified: AppleSGLX/trunk/Makefile
===================================================================
--- AppleSGLX/trunk/Makefile	2009-02-20 00:00:19 UTC (rev 180)
+++ AppleSGLX/trunk/Makefile	2009-02-20 00:09:01 UTC (rev 181)
@@ -39,7 +39,7 @@
 apple_glx_drawable.o: apple_glx_drawable.h apple_glx_drawable.c apple_glx_pixmap.h apple_glx_pbuffer.h
 	$(COMPILE) apple_glx_drawable.c
 
-apple_xgl_api.o: apple_xgl_api.h apple_xgl_api.c
+apple_xgl_api.o: apple_xgl_api.h apple_xgl_api.c apple_xgl_api_stereo.c
 	$(COMPILE) apple_xgl_api.c
 
 apple_xgl_api_read.o: apple_xgl_api_read.h apple_xgl_api_read.c apple_xgl_api.h

Modified: AppleSGLX/trunk/apple_xgl_api_stereo.c
===================================================================
--- AppleSGLX/trunk/apple_xgl_api_stereo.c	2009-02-20 00:00:19 UTC (rev 180)
+++ AppleSGLX/trunk/apple_xgl_api_stereo.c	2009-02-20 00:09:01 UTC (rev 181)
@@ -20,19 +20,23 @@
 
 	 
 void glDrawBuffers(GLsizei n, const GLenum *bufs) {
-    GLenum newbuf[n + 1];
+    GLenum newbuf[n + 2];
     GLsizei i, outi = 0;
-    bool back_handled = false;
+    bool have_back = false;
     
     for(i = 0; i < n; ++i) {
-	if(!back_handled && GL_BACK == bufs[i]) {
-	    newbuf[outi++] = GL_BACK_LEFT;
-	    newbuf[outi++] = GL_BACK_RIGHT;
-	    back_handled = true;
+	if(GL_BACK == bufs[i]) {
+	    have_back = true;
+	    continue;
 	} else {
 	    newbuf[outi++] = bufs[i];
 	}
     }
+
+    if(have_back) {
+	newbuf[outi++] = GL_BACK_LEFT;
+	newbuf[outi++] = GL_BACK_RIGHT;
+    }
     
     __gl_api.DrawBuffers(outi, newbuf);
 }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/xquartz-changes/attachments/20090219/4f6c00f2/attachment.html>


More information about the Xquartz-changes mailing list