[Xquartz-changes] [154] AppleSGLX/trunk

source_changes at macosforge.org source_changes at macosforge.org
Mon Feb 16 15:46:32 PST 2009


Revision: 154
          http://trac.macosforge.org/projects/xquartz/changeset/154
Author:   gstaplin at apple.com
Date:     2009-02-16 15:46:31 -0800 (Mon, 16 Feb 2009)
Log Message:
-----------
Make the AppleDRI interface a bit more robust with regard to buffer sizes,
and changes to the implementation, if for example another surface library
is used at some point in the future.

Modified Paths:
--------------
    AppleSGLX/trunk/apple_glx_pixmap.c
    AppleSGLX/trunk/appledri.c
    AppleSGLX/trunk/appledri.h
    AppleSGLX/trunk/appledristr.h

Modified: AppleSGLX/trunk/apple_glx_pixmap.c
===================================================================
--- AppleSGLX/trunk/apple_glx_pixmap.c	2009-02-16 23:42:57 UTC (rev 153)
+++ AppleSGLX/trunk/apple_glx_pixmap.c	2009-02-16 23:46:31 UTC (rev 154)
@@ -40,7 +40,7 @@
 struct apple_glx_pixmap {
     GLXPixmap xpixmap;
     void *buffer;
-    int width, height;
+    int width, height, pitch, /*bytes per pixel*/ bpp;
     size_t size;
     char path[PATH_MAX];
     int fd;
@@ -98,8 +98,8 @@
     p->buffer = NULL;
 
     if(!XAppleDRICreatePixmap(dpy, screen, pixmap,
-			      &p->width, &p->height, &p->size, 
-			      p->path, PATH_MAX)) {
+			      &p->width, &p->height, &p->pitch, &p->bpp,
+			      &p->size, p->path, PATH_MAX)) {
 	free(p);
 	return true;
     }

Modified: AppleSGLX/trunk/appledri.c
===================================================================
--- AppleSGLX/trunk/appledri.c	2009-02-16 23:42:57 UTC (rev 153)
+++ AppleSGLX/trunk/appledri.c	2009-02-16 23:46:31 UTC (rev 154)
@@ -370,8 +370,8 @@
 }
 
 Bool XAppleDRICreatePixmap(Display *dpy, int screen, Drawable drawable,
-			   int *width, int *height, size_t *size,
-			   char *bufname, size_t bufnamesize) {
+			   int *width, int *height, int *pitch, int *bpp,
+			   size_t *size, char *bufname, size_t bufnamesize) {
     XExtDisplayInfo *info = find_display(dpy);
     xAppleDRICreatePixmapReq *req;
     xAppleDRICreatePixmapReply rep;
@@ -402,6 +402,8 @@
 
 	*width = rep.width;
 	*height = rep.height;
+	*pitch = rep.pitch;
+	*bpp = rep.bpp;
 	*size = rep.size;
 
 	UnlockDisplay(dpy);

Modified: AppleSGLX/trunk/appledri.h
===================================================================
--- AppleSGLX/trunk/appledri.h	2009-02-16 23:42:57 UTC (rev 153)
+++ AppleSGLX/trunk/appledri.h	2009-02-16 23:46:31 UTC (rev 154)
@@ -113,8 +113,8 @@
 Bool XAppleDRISwapBuffers(Display *dpy, int screen, Drawable drawable);
 
 Bool XAppleDRICreatePixmap(Display *dpy, int screen, Drawable drawable,
-			   int *width, int *height, size_t *size,
-			   char *bufname, size_t bufnamesize);
+			   int *width, int *height, int *pitch, int *bpp,
+			   size_t *size, char *bufname, size_t bufnamesize);
 
 Bool XAppleDRIDestroyPixmap(Display *dpy, Pixmap pixmap);
 

Modified: AppleSGLX/trunk/appledristr.h
===================================================================
--- AppleSGLX/trunk/appledristr.h	2009-02-16 23:42:57 UTC (rev 153)
+++ AppleSGLX/trunk/appledristr.h	2009-02-16 23:46:31 UTC (rev 154)
@@ -215,10 +215,10 @@
     CARD32 length B32; /*8*/
     CARD32 width B32; /*12*/
     CARD32 height B32; /*16*/
-    CARD32 size B32; /*20*/
-    CARD32 stringLength B32; /*24*/
-    CARD32 pad2; /*28*/
-    CARD32 pad3; /*32*/
+    CARD32 pitch B32; /*20*/
+    CARD32 bpp B32; /*24*/
+    CARD32 size B32; /*28*/
+    CARD32 stringLength B32; /*32*/
 } xAppleDRICreatePixmapReply;
 
 #define sz_xAppleDRICreatePixmapReply 32
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/xquartz-changes/attachments/20090216/48ab190d/attachment-0001.html>


More information about the Xquartz-changes mailing list