aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2019-11-02 11:37:00 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2019-11-02 11:37:00 +0100
commit5f806ddfdb46c9a727b00ac96a6b939c447ca488 (patch)
tree105382826be27b21abf9069616ce71f84a2f7ed2 /nx-X11/programs/Xserver
parent03d31d2ab37548dffa2bc9f70608cdcc67b09d97 (diff)
parentfcbd27105c968124aa9ab4a337fad51abcbbe35c (diff)
downloadnx-libs-5f806ddfdb46c9a727b00ac96a6b939c447ca488.tar.gz
nx-libs-5f806ddfdb46c9a727b00ac96a6b939c447ca488.tar.bz2
nx-libs-5f806ddfdb46c9a727b00ac96a6b939c447ca488.zip
Merge branch 'uli42-pr/simplify_nxglyph' into 3.6.x
Attributes GH PR #865: https://github.com/ArcticaProject/nx-libs/pull/865
Diffstat (limited to 'nx-X11/programs/Xserver')
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/NXglyph.c52
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c31
2 files changed, 45 insertions, 38 deletions
diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXglyph.c b/nx-X11/programs/Xserver/hw/nxagent/NXglyph.c
index 72d8242bd..022ef09f4 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/NXglyph.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/NXglyph.c
@@ -161,30 +161,35 @@ AddGlyph (GlyphSetPtr glyphSet, GlyphPtr glyph, Glyph id)
CheckDuplicates (&globalGlyphs[glyphSet->fdepth], "AddGlyph bottom");
}
-GlyphPtr FindGlyph (GlyphSetPtr glyphSet, Glyph id)
+GlyphPtr
+FindGlyph (GlyphSetPtr glyphSet, Glyph id)
{
- GlyphRefPtr gr;
- GlyphPtr glyph;
-
- gr = FindGlyphRef (&glyphSet->hash, id, FALSE, 0);
- glyph = gr -> glyph;
-
- if (glyph == DeletedGlyph)
- {
- glyph = 0;
- }
- else if (gr -> corruptedGlyph == 1)
- {
- #ifdef DEBUG
- fprintf(stderr, "FindGlyphRef: Going to synchronize the glyph [%p] for glyphset [%p].\n",
+ GlyphPtr glyph;
+
+#ifdef NXAGENT_SERVER
+ GlyphRefPtr gr = FindGlyphRef (&glyphSet->hash, id, FALSE, 0);
+ glyph = gr -> glyph;
+#else
+ glyph = FindGlyphRef (&glyphSet->hash, id, FALSE, 0)->glyph;
+#endif
+ if (glyph == DeletedGlyph)
+ {
+ glyph = 0;
+ }
+#ifdef NXAGENT_SERVER
+ else if (gr -> corruptedGlyph == 1)
+ {
+ #ifdef DEBUG
+ fprintf(stderr, "FindGlyphRef: Going to synchronize the glyph [%p] for glyphset [%p].\n",
(void *) glyph, (void *) glyphSet);
- #endif
+ #endif
- nxagentAddGlyphs(glyphSet, &id, &(glyph -> info), 1,
+ nxagentAddGlyphs(glyphSet, &id, &(glyph -> info), 1,
(CARD8*)(glyph + 1), glyph -> size - sizeof(xGlyphInfo));
- }
+ }
+#endif
- return glyph;
+ return glyph;
}
Bool
@@ -269,18 +274,21 @@ miGlyphs (CARD8 op,
BoxRec extents;
CARD32 component_alpha;
+#ifdef NXAGENT_SERVER
/*
* Get rid of the warning.
*/
extents.x1 = 0;
extents.y1 = 0;
+#endif
if (maskFormat)
{
GCPtr pGC;
xRectangle rect;
+#ifdef NXAGENT_SERVER
if (nxagentGlyphsExtents != NullBox)
{
memcpy(&extents, nxagentGlyphsExtents, sizeof(BoxRec));
@@ -293,6 +301,9 @@ miGlyphs (CARD8 op,
memcpy(nxagentGlyphsExtents, &extents, sizeof(BoxRec));
}
+#else
+ GlyphExtents (nlist, list, glyphs, &extents);
+#endif
if (extents.x2 <= extents.x1 || extents.y2 <= extents.y1)
return;
@@ -364,6 +375,7 @@ miGlyphs (CARD8 op,
glyph->info.width, glyph->info.height,
0, 0, -1, (void *) (glyph + 1));
+#ifdef NXAGENT_SERVER
/*
* The following line fixes a problem with glyphs that appeared
* as clipped. It was a side effect due the validate function
@@ -373,7 +385,7 @@ miGlyphs (CARD8 op,
*/
pPicture->pDrawable->serialNumber = NEXT_SERIAL_NUMBER;
-
+#endif
pPixmap->drawable.serialNumber = NEXT_SERIAL_NUMBER;
if (maskFormat)
{
diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c b/nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c
index 549ab4333..9f26b7d6f 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/NXglyphcurs.c
@@ -100,6 +100,7 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, register CursorMetricPtr cm, uns
PixmapPtr ppix;
long nby;
char *pbits;
+ ChangeGCVal gcval[3];
unsigned char char2b[2];
/* turn glyph index into a protocol-format char2b */
@@ -114,7 +115,8 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, register CursorMetricPtr cm, uns
/* zeroing the (pad) bits seems to help some ddx cursor handling */
bzero(pbits, nby);
- ppix = fbCreatePixmap(pScreen, cm->width, cm->height, 1,
+ ppix = fbCreatePixmap(pScreen, cm->width,
+ cm->height, 1,
CREATE_PIXMAP_USAGE_SCRATCH);
pGC = GetScratchGC(1, pScreen);
if (!ppix || !pGC)
@@ -143,28 +145,21 @@ ServerBitsFromGlyph(FontPtr pfont, unsigned ch, register CursorMetricPtr cm, uns
rect.width = cm->width;
rect.height = cm->height;
- pGC->stateChanges |= GCFunction | GCForeground | GCFont;
- pGC->alu = GXcopy;
-
- pGC->fgPixel = 0;
-
- pfont->refcnt++;
-
- if (pGC->font)
- CloseFont(pGC->font, (Font)0);
-
- pGC->font = pfont;
-
+ /* fill the pixmap with 0 */
+ gcval[0].val = GXcopy;
+ gcval[1].val = 0;
+ gcval[2].ptr = (void *)pfont;
+ dixChangeGC(NullClient, pGC, GCFunction | GCForeground | GCFont,
+ NULL, gcval);
ValidateGC((DrawablePtr)ppix, pGC);
fbPolyFillRect((DrawablePtr)ppix, pGC, 1, &rect);
/* draw the glyph */
- pGC->fgPixel = 1;
-
- pGC->stateChanges |= GCForeground;
-
+ gcval[0].val = 1;
+ dixChangeGC(NullClient, pGC, GCForeground, NULL, gcval);
ValidateGC((DrawablePtr)ppix, pGC);
- miPolyText16((DrawablePtr)ppix, pGC, (int)cm->xhot, (int)cm->yhot, (int)1, (unsigned short*)char2b);
+ 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);
*ppbits = (unsigned char *)pbits;