Revision: 181 http://trac.macosforge.org/projects/xquartz/changeset/181 Author: gstaplin@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); }
participants (1)
-
source_changes@macosforge.org