Change the definition of composite glyphs from using an explicit dst-x/dst-y location to match current implementation which uses the dx/dy values from the first glyphitem for the destination location.
Define the source pattern origin to align with that first glyph location. Eliminate use of the mask-format in composite glyphs to clean up rendering. Signed-off-by: Keith Packard <[email protected]> --- renderproto.txt | 43 ++++++++++++++++--------------------------- 1 file changed, 16 insertions(+), 27 deletions(-) diff --git a/renderproto.txt b/renderproto.txt index 9f1f231..69368f6 100644 --- a/renderproto.txt +++ b/renderproto.txt @@ -231,7 +231,9 @@ PICTGLYPH [ info: GLYPHINFO x, y: INT16 ] -GLYPHABLE GLYPHSET or FONTABLE +GLYPHABLE [ + glyphset: GLYPHSET + ] GLYPHELT8 [ dx, dy: INT16 glyphs: LISTofCARD8 @@ -977,9 +979,8 @@ CompositeGlyphs32 src: PICTURE dst: PICTURE mask-format: PICTFORMAT or None - glyphset: GLYPHABLE + glyphset: GLYPHSET src-x, src-y: INT16 - dst-x, dst-y: INT16 glyphcmds: LISTofGLYPHITEM8 CompositeGlyphs8 glyphcmds: LISTofGLYPHITEM16 CompositeGlyphs16 glyphcmds: LISTofGLYPHITEM32 CompositeGlyphs32 @@ -987,32 +988,20 @@ CompositeGlyphs32 Errors: Picture, PictOp, PictFormat, GlyphSet, Glyph - The dst-x and dst-y coordinates are relative to the drawable's - origin and specify the baseline starting position (the initial glyph - origin). Each glyph item is processed in turn. A glyphset item - causes the glyphset to be used for subsequent glyphs. Switching - among glyphsets does not affect the next glyph origin. A glyph - element delta-x and delta-y specify additional changes in the - position along the x and y axes before the string is drawn; the - deltas are always added to the glyph origin. - - All contained GLYPHSETs are always transmitted most significant byte - first. - - If a GlyphSet error is generated for an item, the previous items may - have been drawn. - - When mask-format is not None, glyphs are rendered in the following - way with the effective mask computed in mask-format: + The destination origin is set from the dx/dy members of the + first glyph item. Subsequent glyphs are offset by the + off-x/off-y elements from the previous glyph. Subsequent + glyphitems are additionally offset by their dx/dy members. - tmp = temporary alpha picture - Combine (Zero, tmp, tmp, None) - for each glyph - Combine (Add, tmp, glyph, None) - Combine (op, dst, source, tmp) + The src-x and src-y coordinates are relative to the source's + origin and register the pattern to the destination origin. + + A GLYPHABLE item causes the glyphset to be used for subsequent + glyphs. Switching among glyphsets does not affect the next + glyph origin. - When mask-format is None, glyphs are rendered in the order specified - directly to the destination: + Glyphs are rendered in the order specified directly to the + destination: for each glyph Combine (op, dst, source, glyph) -- 2.1.4 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
