Is any one tested the following code. i got this code from list for double

buffering.i am getting segmentation fault while running on Embedded board.



Index: microwin/src/drivers/scr_bios.c

===================================================================

--- microwin.orig/src/drivers/scr_bios.c

+++ microwin/src/drivers/scr_bios.c

@@ -235,8 +235,8 @@ VGA_close(PSD psd)

 static void

 VGA_getscreeninfo(PSD psd,PMWSCREENINFO psi)

 {

-       psi->rows = psd->yvirtres;

-       psi->cols = psd->xvirtres;

+       psi->visrows = psi->rows = psd->yvirtres;

+       psi->viscols = psi->cols = psd->xvirtres;

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_debug.c

===================================================================

--- microwin.orig/src/drivers/scr_debug.c

+++ microwin/src/drivers/scr_debug.c

@@ -76,8 +76,8 @@ DBG_close(PSD psd)

 static void

 DBG_getscreeninfo(PSD psd,PMWSCREENINFO psi)

 {

-       psi->rows = psd->yvirtres;

-       psi->cols = psd->xvirtres;

+       psi->visrows = psi->rows = psd->yvirtres;

+       psi->viscols = psi->cols = psd->xvirtres;

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_djgr.c

===================================================================

--- microwin.orig/src/drivers/scr_djgr.c

+++ microwin/src/drivers/scr_djgr.c

@@ -107,8 +107,8 @@ DJGR_close(PSD psd)

 static void

 DJGR_getscreeninfo(PSD psd,PMWSCREENINFO psi)

 {

-       psi->rows = psd->yvirtres;

-       psi->cols = psd->xvirtres;

+       psi->visrows = psi->rows = psd->yvirtres;

+       psi->viscols = psi->cols = psd->xvirtres;

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_ecos.c

===================================================================

--- microwin.orig/src/drivers/scr_ecos.c

+++ microwin/src/drivers/scr_ecos.c

@@ -357,8 +357,8 @@ setfadelevel(PSD psd, int f)

 static void

 gen_getscreeninfo(PSD psd,PMWSCREENINFO psi)

 {

-    psi->rows = psd->yvirtres;

-    psi->cols = psd->xvirtres;

+    psi->visrows = psi->rows = psd->yvirtres;

+    psi->viscols = psi->cols = psd->xvirtres;

     psi->planes = psd->planes;

     psi->bpp = psd->bpp;

     psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_em84xx.c

===================================================================

--- microwin.orig/src/drivers/scr_em84xx.c

+++ microwin/src/drivers/scr_em84xx.c

@@ -247,8 +247,8 @@ EM8400_close(PSD psd)

 static void

 EM8400_getscreeninfo(PSD psd,PMWSCREENINFO psi)

 {

-       psi->rows = psd->yvirtres;

-       psi->cols = psd->xvirtres;

+       psi->visrows = psi->rows = psd->yvirtres;

+       psi->viscols = psi->cols = psd->xvirtres;

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_fb.c

===================================================================

--- microwin.orig/src/drivers/scr_fb.c

+++ microwin/src/drivers/scr_fb.c

@@ -43,10 +43,10 @@ static void fb_close(PSD psd);

 static void fb_setportrait(PSD psd, int portraitmode);

 static void fb_setpalette(PSD psd,int first, int count, MWPALENTRY

*palette);

 static void gen_getscreeninfo(PSD psd,PMWSCREENINFO psi);

-

+static void fb_panscreen(PSD psd, int, int);

 

 SCREENDEVICE   scrdev = {

-       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL,

+       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL,

        fb_open,

        fb_close,

        gen_getscreeninfo,

@@ -64,8 +64,10 @@ SCREENDEVICE scrdev = {

        gen_allocatememgc,

        fb_mapmemgc,

        gen_freememgc,

+       fb_panscreen,

        NULL,                   /* StretchBlit subdriver*/

        fb_setportrait          /* SetPortrait*/

+

 };

 

 /* static variables*/

@@ -144,9 +146,25 @@ fb_open(PSD psd)

        psd->xres = psd->xvirtres = fb_var.xres_virtual;

        psd->yres = psd->yvirtres = fb_var.yres_virtual;

 #else

-       psd->xres = psd->xvirtres = fb_var.xres;

-       psd->yres = psd->yvirtres = fb_var.yres;

+       /* The entire xvirtres is available for us to draw on */

+

+       psd->xres = psd->xvirtres = fb_var.xres_virtual;

+       psd->yres = psd->yvirtres = fb_var.yres_virtual;

+

+       /* But we want to know how much of the screen is visible so we can

+          know when to pan */

+

+       psd->xvisible = fb_var.xres;

+       psd->yvisible = fb_var.yres;

+

+       printf("FB:  total (%d,%d) visible (%d,%d)\n",

+              psd->xvirtres, psd->yvirtres, psd->xvisible, psd->yvisible);

+

 #endif

+       /* Offset into the screen for panning purposes */

+       

+       psd->xoffset = 0;

+       psd->yoffset = 0;

 

        /* set planes from fb type*/

        if (type == FB_TYPE_VGA_PLANES)

@@ -472,6 +490,9 @@ gen_getscreeninfo(PSD psd,PMWSCREENINFO 

 {

        psi->rows = psd->yvirtres;

        psi->cols = psd->xvirtres;

+       psi->viscols =  psd->xvisible;

+       psi->visrows = psd->yvisible;

+

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

@@ -529,3 +550,21 @@ gen_getscreeninfo(PSD psd,PMWSCREENINFO 

                psi->ydpcm = 19;        /* assumes screen height of 18 cm*/

        }

 }

+

+static void

+fb_panscreen(PSD psd, int xoffset, int yoffset) {

+  struct fb_var_screeninfo fb_var;

+  

+  if (ioctl(fb, FBIOGET_VSCREENINFO, &fb_var) == -1) 

+    return;

+

+  /* Don't bother doing the operation if we don't have to */

+

+  //if (fb_var.xoffset == xoffset && fb_var.yoffset == yoffset)

+  // return;

+

+  fb_var.xoffset = xoffset;

+  fb_var.yoffset = yoffset;

+

+  ioctl(fb, FBIOPAN_DISPLAY, &fb_var);

+}

Index: microwin/src/drivers/scr_fbsd.c

===================================================================

--- microwin.orig/src/drivers/scr_fbsd.c

+++ microwin/src/drivers/scr_fbsd.c

@@ -201,8 +201,8 @@ static PSD FBSD_open(PSD psd)

 

 static void FBSD_getscreeninfo(PSD psd, PMWSCREENINFO psi)

 {

-    psi->rows = psd->yvirtres;

-    psi->cols = psd->xvirtres;

+    psi->visrows = psi->rows = psd->yvirtres;

+    psi->viscols = psi->cols = psd->xvirtres;

     psi->planes = psd->planes;

     psi->bpp = psd->bpp;

     psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_herc.c

===================================================================

--- microwin.orig/src/drivers/scr_herc.c

+++ microwin/src/drivers/scr_herc.c

@@ -144,8 +144,8 @@ HERC_close(PSD psd)

 static void

 HERC_getscreeninfo(PSD psd,PMWSCREENINFO psi)

 {

-       psi->rows = psd->yvirtres;

-       psi->cols = psd->xvirtres;

+       psi->visrows = psi->rows = psd->yvirtres;

+       psi->viscols = psi->cols = psd->xvirtres;

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_prsm.c

===================================================================

--- microwin.orig/src/drivers/scr_prsm.c

+++ microwin/src/drivers/scr_prsm.c

@@ -126,8 +126,8 @@ VB_close(PSD psd)

 static void

 VB_getscreeninfo(PSD psd,PMWSCREENINFO psi)

 {

-       psi->rows = psd->yvirtres;

-       psi->cols = psd->xvirtres;

+       pis->visrows = psi->rows = psd->yvirtres;

+       psi->viscols = psi->cols = psd->xvirtres;

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_rtems.c

===================================================================

--- microwin.orig/src/drivers/scr_rtems.c

+++ microwin/src/drivers/scr_rtems.c

@@ -311,8 +311,8 @@ ioctl_setpalette(int start, int len, sho

 static void

 gen_getscreeninfo(PSD psd,PMWSCREENINFO psi)

 {

-       psi->rows = psd->yvirtres;

-       psi->cols = psd->xvirtres;

+       psi->visrows = psi->rows = psd->yvirtres;

+       psi->viscols = psi->cols = psd->xvirtres;

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_svga.c

===================================================================

--- microwin.orig/src/drivers/scr_svga.c

+++ microwin/src/drivers/scr_svga.c

@@ -109,8 +109,8 @@ SVGA_close(PSD psd)

 static void

 SVGA_getscreeninfo(PSD psd,PMWSCREENINFO psi)

 {

-       psi->rows = psd->yvirtres;

-       psi->cols = psd->xvirtres;

+       psi->visrows = psi->rows = psd->yvirtres;

+       psi->viscols = psi->cols = psd->xvirtres;

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

Index: microwin/src/drivers/scr_x11.c

===================================================================

--- microwin.orig/src/drivers/scr_x11.c

+++ microwin/src/drivers/scr_x11.c

@@ -841,8 +841,8 @@ X11_close(PSD psd)

 static void

 X11_getscreeninfo(PSD psd, PMWSCREENINFO psi)

 {

-       psi->rows = psd->yvirtres;

-       psi->cols = psd->xvirtres;

+       psi->visrows = psi->rows = psd->yvirtres;

+       psi->viscols = psi->cols = psd->xvirtres;

        psi->planes = psd->planes;

        psi->bpp = psd->bpp;

        psi->ncolors = psd->ncolors;

Index: microwin/src/engine/devmouse.c

===================================================================

--- microwin.orig/src/engine/devmouse.c

+++ microwin/src/engine/devmouse.c

@@ -183,6 +183,8 @@ GdSetAccelMouse(int newthresh, int newsc

 void

 GdMoveMouse(MWCOORD newx, MWCOORD newy)

 {

+        int xo = scrdev.xoffset, yo = scrdev.yoffset;

+       

        if (!(mousedev.flags & MOUSE_RAW)) {

                if (newx < minx)

                        newx = minx;

@@ -197,6 +199,30 @@ GdMoveMouse(MWCOORD newx, MWCOORD newy)

        if (newx == xpos && newy == ypos)

                return;

 

+#ifdef NOTUSED

+       /* Pan the display if possible - we want to do this smoothly */

+

+       if (newx < scrdev.xoffset)

+         xo = newx - 5;

+       else if (newx > scrdev.xoffset + scrdev.xvisible)

+         xo = (newx + 5) - scrdev.xvisible;

+       

+       if (newy < scrdev.yoffset)

+         yo = newy - 5;

+       else if (newy > scrdev.yoffset + scrdev.yvisible)

+         yo = (newy + 5) - scrdev.yvisible;

+       

+       if (xo < 0) xo = 0;

+       if (xo > scrdev.xres) xo = scrdev.xres - scrdev.xvisible;

+       

+       if (yo < 0) yo = 0;

+       if (yo > scrdev.yres) yo = scrdev.yres - scrdev.yvisible;

+

+       /* Move the screen accordingly */

+       if (xo != scrdev.xoffset || yo != scrdev.yoffset)

+         GdPanScreen(&scrdev, xo, yo);

+#endif

+

        changed = TRUE;

 

        xpos = newx;

Index: microwin/src/engine/devopen.c

===================================================================

--- microwin.orig/src/engine/devopen.c

+++ microwin/src/engine/devopen.c

@@ -408,6 +408,41 @@ GdGetColorRGB(PSD psd, MWPIXELVAL pixel)

        }

 }

 

+void

+GdPanScreen(PSD psd, int xoffset, int yoffset) {

+               

+       if (!psd->PanScreen) return;

+

+       if ((psd->xvisible != psd->xvirtres)) {

+

+               /* Bound it */

+

+               if (xoffset < 0) xoffset = 0;           

+               if (xoffset + psd->xvisible > psd->xvirtres)

+                       xoffset = psd->xvirtres - psd->xvisible;

+       }

+       else 

+               xoffset = 0;

+

+       if ((psd->yvisible != psd->yvirtres)) {

+               

+               /* Bound it */

+

+               if (yoffset < 0) yoffset = 0;           

+               if (yoffset + psd->yvisible > psd->yvirtres)

+                       yoffset = psd->yvirtres - psd->yvisible;

+       }

+       else 

+               yoffset = 0;

+

+       if (xoffset != psd->xoffset || yoffset != psd->yoffset) {

+               psd->yoffset = yoffset;

+               psd->xoffset = xoffset;

+

+               psd->PanScreen(psd, psd->xoffset, psd->yoffset);

+       }

+}

+

 #if !VXWORKS

 #if defined(HAVE_FILEIO)

 #include <unistd.h>

@@ -637,3 +672,5 @@ GdCaptureScreen(char *path)

        return 0;

 }

 #endif /* !VXWORKS*/

+

+

Index: microwin/src/include/device.h

===================================================================

--- microwin.orig/src/include/device.h

+++ microwin/src/include/device.h

@@ -338,6 +338,10 @@ typedef struct _mwscreendevice {

        MWCOORD yres;           /* Y screen res (real) */

        MWCOORD xvirtres;       /* X drawing res (will be flipped in portrait 
mode) */

        MWCOORD yvirtres;       /* Y drawing res (will be flipped in portrait 
mode) */

+       int     xvisible;       /* Actual x real estate that is visible */

+       int     yvisible;       /* Ditto */

+       int     xoffset;        /* X offset for panning */

+       int     yoffset;        /* Y offset for panning */

        int     planes;         /* # planes*/

        int     bpp;            /* # bpp*/

        int     linelen;        /* line length in bytes for bpp 1,2,4,8*/

@@ -374,6 +378,7 @@ typedef struct _mwscreendevice {

        MWBOOL  (*MapMemGC)(PSD mempsd,MWCOORD w,MWCOORD h,int planes,int bpp,

                        int linelen,int size,void *addr);

        void    (*FreeMemGC)(PSD mempsd);

+       void    (*PanScreen)(PSD, int, int);

        void    (*StretchBlit)(PSD destpsd,MWCOORD destx,MWCOORD desty,

                        MWCOORD destw,MWCOORD desth,PSD srcpsd,MWCOORD srcx,

                        MWCOORD srcy,MWCOORD srcw,MWCOORD srch,long op);

@@ -794,6 +799,8 @@ void        drawbitmap(PSD psd, MWCOORD x, MWCO

                const MWIMAGEBITS *imagebits);

 void   drawpoint(PSD psd, MWCOORD x, MWCOORD y);

 void   drawrow(PSD psd, MWCOORD x1, MWCOORD x2, MWCOORD y);

+void    GdPanScreen(PSD psd, int, int);

+

 extern SCREENDEVICE scrdev;

 

 

Index: microwin/src/include/mwtypes.h

===================================================================

--- microwin.orig/src/include/mwtypes.h

+++ microwin/src/include/mwtypes.h

@@ -314,6 +314,8 @@ typedef unsigned int        MWKEYMOD;

 typedef struct {

        MWCOORD  rows;          /* number of rows on screen */

        MWCOORD  cols;          /* number of columns on screen */

+       MWCOORD  visrows;       /* number of visible rows */

+       MWCOORD  viscols;       /* number of visible columns */

        int      xdpcm;         /* dots/centimeter in x direction */

        int      ydpcm;         /* dots/centimeter in y direction */

        int      planes;        /* hw # planes*/

Index: microwin/src/include/nano-X.h

===================================================================

--- microwin.orig/src/include/nano-X.h

+++ microwin/src/include/nano-X.h

@@ -559,6 +559,12 @@ typedef union {

 

 typedef void (*GR_FNCALLBACKEVENT)(GR_EVENT *);

 

+typedef struct {

+   GR_WINDOW_ID buf[2];

+   int active;

+   int size;

+} GR_DOUBLE_BUFFER;

+       

 /* GR_BITMAP macros*/

 /* size of GR_BITMAP image in words*/

 #define        GR_BITMAP_SIZE(width, height)   MWIMAGE_SIZE(width, height)

@@ -925,6 +931,7 @@ void            GrSetTransform(GR_TRANSF

 int             GrCalcTransform(GR_CAL_DATA *, GR_TRANSFORM *);

 int             GrLoadTransformData(char *filename, GR_TRANSFORM *);

 int             GrSaveTransformData(GR_TRANSFORM *, char *filename);

+void            GrPanDisplay(int, int);

 

 /* nxutil.c - utility routines*/

 GR_WINDOW_ID   GrNewWindowEx(GR_WM_PROPS props, GR_CHAR *title,

@@ -944,6 +951,12 @@ GR_BITMAP *        GrNewBitmapFromPixmap(GR_WIN

 GR_REGION_ID   GrNewRegionFromPixmap(GR_WINDOW_ID src, MWCOORD x, MWCOORD y,

                        GR_SIZE width, GR_SIZE height);

 

+/* nxdblbuf.c */

+

+GR_DOUBLE_BUFFER *GrInitDoubleBuffer(void);

+void GrCloseDoubleBuffer(GR_DOUBLE_BUFFER *);

+void GrFlipBuffers(GR_DOUBLE_BUFFER *);

+

 /* direct client-side framebuffer mapping routines*/

 unsigned char * GrOpenClientFramebuffer(void);

 void           GrCloseClientFramebuffer(void);

Index: microwin/src/nanox/Makefile

===================================================================

--- microwin.orig/src/nanox/Makefile

+++ microwin/src/nanox/Makefile

@@ -38,7 +38,8 @@ NANOXFILES := \

 OBJS := \

        $(MW_DIR_OBJ)/nanox/nxdraw.o \

        $(MW_DIR_OBJ)/nanox/nxutil.o \

-       $(MW_DIR_OBJ)/nanox/nxtransform.o

+       $(MW_DIR_OBJ)/nanox/nxtransform.o \

+       $(MW_DIR_OBJ)/nanox/nxdblbuf.o

 

 ifeq ($(LINK_APP_INTO_SERVER), Y)

 OBJS += $(NANOXFILES)

Index: microwin/src/nanox/client.c

===================================================================

--- microwin.orig/src/nanox/client.c

+++ microwin/src/nanox/client.c

@@ -4761,5 +4761,19 @@ GrCopyFont(GR_FONT_ID fontid, GR_COORD h

 }

 #endif /*HAVE_FREETYPE_2_SUPPORT*/

 

+/* Used to pan the display for those devices that have such support */

 

+void

+GrPanDisplay(int xoffset, int yoffset) {

+

+  nxPanDisplayReq *req;

+

+  LOCK(&nxGlobalLock);

+

+  req = AllocReq(PanDisplay);

+  req->xoffset = xoffset;

+  req->yoffset = yoffset;

+

+  UNLOCK(&nxGlobalLock);

+}

 

Index: microwin/src/nanox/nxdblbuf.c

===================================================================

--- /dev/null

+++ microwin/src/nanox/nxdblbuf.c

@@ -0,0 +1,49 @@

+#include "nano-X.h"

+#include "device.h"

+

+/* Initalize two windows that act as double buffers */

+

+GR_DOUBLE_BUFFER *GrInitDoubleBuffer(void) {

+  

+  GR_SCREEN_INFO si;

+  GR_DOUBLE_BUFFER *s = 0;

+

+  GrGetScreenInfo(&si);

+

+  if (si.rows < si.visrows * 2) return 0;

+  

+  s = malloc(sizeof(GR_DOUBLE_BUFFER));

+  if (!s) return 0;

+

+  printf("VISROWS=%d\n", si.visrows);

+

+  s->buf[0] = GrNewWindow(GR_ROOT_WINDOW_ID, 0, 0, si.cols, 

+                         si.visrows, 0, 0, 0);

+  

+  s->buf[1] = GrNewWindow(GR_ROOT_WINDOW_ID, 0, si.visrows, 

+                         si.cols, si.visrows, 0, 0, 0);

+

+  s->active = 0;

+  s->size = si.visrows;

+

+  return s;

+}

+

+void GrCloseDoubleBuffer(GR_DOUBLE_BUFFER *buf) {

+  GrDestroyWindow(buf->buf[0]);

+  GrDestroyWindow(buf->buf[1]);

+

+  free(buf);

+}

+

+/* Flip the screen betwee nteh two buffers */

+

+void GrFlipBuffers(GR_DOUBLE_BUFFER *buf) {

+

+  if (!buf) return;

+

+  buf->active = !buf->active;

+  GrPanDisplay(0, buf->size * buf->active);

+}

+

+  

Index: microwin/src/nanox/nxproto.h

===================================================================

--- microwin.orig/src/nanox/nxproto.h

+++ microwin/src/nanox/nxproto.h

@@ -1366,4 +1366,13 @@ typedef struct {

        INT16 height;

 } nxCopyFontReq;

 

-#define GrTotalNumCalls         125

+#define GrNumPanDisplay         125

+typedef struct         {

+       BYTE8 reqType;

+       BYTE8 hilength;

+       UINT16 length;

+       INT16 xoffset;

+       INT16 yoffset;

+} nxPanDisplayReq;

+       

+#define GrTotalNumCalls         126

Index: microwin/src/nanox/srvfunc.c

===================================================================

--- microwin.orig/src/nanox/srvfunc.c

+++ microwin/src/nanox/srvfunc.c

@@ -4314,3 +4314,15 @@ GrUngrabKey(GR_WINDOW_ID id, GR_KEY key)

 

        SERVER_UNLOCK();

 }

+

+/**

+ * Pan the display 

+ *

+ * @param xoffset New xoffset of the display

+ * @param yoffset New yoffset of the display

+ */

+

+void

+GrPanDisplay(int xoffset, int yoffset) {  

+  GdPanScreen(rootwp->psd, xoffset, yoffset);

+}

Index: microwin/src/nanox/srvmain.c

===================================================================

--- microwin.orig/src/nanox/srvmain.c

+++ microwin/src/nanox/srvmain.c

@@ -1169,7 +1169,15 @@ GsInitialize(void)

         * Tell the mouse driver some things.

         */

        curbuttons = 0;

-       GdRestrictMouse(0, 0, psd->xvirtres - 1, psd->yvirtres - 1);

+

+       /* If panning is indicated, we now allow the mouse the full range

+          of motion */

+       

+       if (psd->PanScreen)

+         GdRestrictMouse(0, 0, psd->xres - 1, psd->yres - 1);

+       else

+         GdRestrictMouse(0, 0, psd->xvirtres - 1, psd->yvirtres - 1);

+

        GdMoveMouse(psd->xvirtres / 2, psd->yvirtres / 2);

 

        /* Force root window screen paint*/

Index: microwin/src/nanox/srvnet.c

===================================================================

--- microwin.orig/src/nanox/srvnet.c

+++ microwin/src/nanox/srvnet.c

@@ -1593,6 +1593,11 @@ GrCopyFontWrapper(void *r)

 #endif /*HAVE_FREETYPE_2_SUPPORT*/

 }

 

+static void

+GrPanDisplayWrapper(void *r) {

+       nxPanDisplayReq *req = r;

+       GrPanDisplay(req->xoffset, req->yoffset);

+}

 

 void GrShmCmdsFlushWrapper(void *r);

 

@@ -1729,6 +1734,7 @@ static const struct GrFunction GrFunctio

        /* 122 */ {GrSetTransformWrapper, "GrSetTransform" },

        /* 123 */ {GrCreateFontFromBufferWrapper, "GrCreateFontFromBuffer"},

        /* 124 */ {GrCopyFontWrapper, "GrCopyFont"},

+       /* 125 */ {GrPanDisplayWrapper, "GrPanDisplay" }

 };

 

 void




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to