aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Sibiller <uli42@gmx.de>2024-04-09 22:19:50 +0200
committerUlrich Sibiller <uli42@gmx.de>2024-05-11 18:53:27 +0200
commit9df98ab60498dd7d361abb9b534acf9fb1f3ce44 (patch)
tree3350e187a22e8a40555f208b6767436f1c16ebda
parentac45ae3bfec21cc28ea15b34bb6c524c9919b2f4 (diff)
downloadnx-libs-9df98ab60498dd7d361abb9b534acf9fb1f3ce44.tar.gz
nx-libs-9df98ab60498dd7d361abb9b534acf9fb1f3ce44.tar.bz2
nx-libs-9df98ab60498dd7d361abb9b534acf9fb1f3ce44.zip
NXglyphcurs.c: mark NX changes
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c b/nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c
index 0905b89fc..17344937c 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c
@@ -122,14 +122,24 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm, unsigned cha
/* zeroing the (pad) bits seems to help some ddx cursor handling */
bzero(pbits, nby);
+#ifndef NXAGENT_SERVER
+ ppix = (PixmapPtr)(*pScreen->CreatePixmap)(pScreen, cm->width,
+ cm->height, 1,
+ CREATE_PIXMAP_USAGE_SCRATCH);
+#else
ppix = fbCreatePixmap(pScreen, cm->width,
cm->height, 1,
CREATE_PIXMAP_USAGE_SCRATCH);
+#endif
pGC = GetScratchGC(1, pScreen);
if (!ppix || !pGC)
{
if (ppix)
+#ifndef NXAGENT_SERVER
+ (*pScreen->DestroyPixmap)(ppix);
+#else
fbDestroyPixmap(ppix);
+#endif
if (pGC)
FreeScratchGC(pGC);
free(pbits);
@@ -159,19 +169,34 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, CursorMetricPtr cm, unsigned cha
dixChangeGC(NullClient, pGC, GCFunction | GCForeground | GCFont,
NULL, gcval);
ValidateGC((DrawablePtr)ppix, pGC);
+#ifndef NXAGENT_SERVER
+ (*pGC->ops->PolyFillRect)((DrawablePtr)ppix, pGC, 1, &rect);
+#else
fbPolyFillRect((DrawablePtr)ppix, pGC, 1, &rect);
+#endif
/* draw the glyph */
gcval[0].val = 1;
dixChangeGC(NullClient, pGC, GCForeground, NULL, gcval);
ValidateGC((DrawablePtr)ppix, pGC);
+#ifndef NXAGENT_SERVER
+ (*pGC->ops->PolyText16)((DrawablePtr)ppix, pGC, cm->xhot, cm->yhot,
+ 1, (unsigned short *)char2b);
+ (*pScreen->GetImage)((DrawablePtr)ppix, 0, 0, cm->width, cm->height,
+ XYPixmap, 1, pbits);
+#else
miPolyText16((DrawablePtr)ppix, pGC, (int)cm->xhot, (int)cm->yhot,
(int)1, (unsigned short*)char2b);
fbGetImage((DrawablePtr)ppix, 0, 0, cm->width, cm->height,
XYPixmap, 1, pbits);
+#endif
*ppbits = (unsigned char *)pbits;
FreeScratchGC(pGC);
+#ifndef NXAGENT_SERVER
+ (*pScreen->DestroyPixmap)(ppix);
+#else
fbDestroyPixmap(ppix);
+#endif
#ifdef TEST
fprintf(stderr, "ServerBitsFromGlyph: Destroyed virtual pixmap at [%p].\n",