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

Reply via email to