From 20ae2b2fb439643cf75dc134a84ce21753c5ce70 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Wed, 12 Aug 2009 22:19:42 -0700 Subject: Update Render extension decoding from protocol rev 0.5 to 0.11 Filled in most, but not all, of the details for new & existing requests Corrected print-outs several existing requests Signed-off-by: Alan Coopersmith --- print_render.c | 393 ++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 278 insertions(+), 115 deletions(-) (limited to 'print_render.c') diff --git a/print_render.c b/print_render.c index ed53929..c45a046 100644 --- a/print_render.c +++ b/print_render.c @@ -19,22 +19,59 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ +/* + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, and/or sell copies of the Software, and to permit persons + * to whom the Software is furnished to do so, provided that the above + * copyright notice(s) and this permission notice appear in all copies of + * the Software and that both the above copyright notice(s) and this + * permission notice appear in supporting documentation. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT + * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL + * INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING + * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, + * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Except as contained in this notice, the name of a copyright holder + * shall not be used in advertising or otherwise to promote the sale, use + * or other dealings in this Software without prior written authorization + * of the copyright holder. + */ #include "scope.h" #include "x11.h" #include "renderscope.h" +/* Print the portion of the render request header common to all requests */ +static inline void +RenderRequestHeader (FD fd, const unsigned char *buf) +{ + PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; + PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* minor op */ ; + if (Verbose > 1) + PrintField(SBf, 0, 4, CARD32, "sequence number"); +} + void RenderQueryVersion (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, CARD32, "major-version"); + PrintField(buf, 8, 4, CARD32, "minor-version"); } void @@ -46,19 +83,16 @@ RenderQueryVersionReply (FD fd, const unsigned char *buf) return; printfield(buf, 2, 2, CARD16, "sequence number"); printfield(buf, 4, 4, DVALUE4(0), "reply length"); - PrintField(buf, 8, 2, CARD16, "major-version"); - PrintField(buf, 10, 2, CARD16, "minor-version"); + PrintField(buf, 8, 4, CARD32, "major-version"); + PrintField(buf, 12, 4, CARD32, "minor-version"); } void RenderQueryPictFormats (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); } @@ -89,14 +123,12 @@ RenderQueryPictFormatsReply (FD fd, const unsigned char *buf) void RenderQueryPictIndexValues (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTFORMAT, "format"); } void @@ -113,12 +145,9 @@ RenderQueryPictIndexValuesReply (FD fd, const unsigned char *buf) void RenderQueryDithers (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); } @@ -137,12 +166,9 @@ RenderQueryDithersReply (FD fd, const unsigned char *buf) void RenderCreatePicture (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, DVALUE2(5+n)); PrintField(buf, 4, 4, PICTURE, "picture"); @@ -155,12 +181,9 @@ RenderCreatePicture (FD fd, const unsigned char *buf) void RenderChangePicture (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, DVALUE2(3+n)); PrintField(buf, 4, 4, PICTURE, "picture"); @@ -171,12 +194,9 @@ RenderChangePicture (FD fd, const unsigned char *buf) void RenderSetPictureClipRectangles (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); } @@ -184,60 +204,71 @@ RenderSetPictureClipRectangles (FD fd, const unsigned char *buf) void RenderFreePicture (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTURE, "picture"); } void RenderComposite (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); + PrintField (buf, 4, 1, PICTOP, "op"); + PrintField(buf, 8, 4, PICTURE, "source"); + PrintField(buf, 12, 4, PICTURE, "mask"); + PrintField(buf, 16, 4, PICTURE, "dest"); + PrintField(buf, 20, 2, INT16, "source x"); + PrintField(buf, 22, 2, INT16, "source y"); + PrintField(buf, 24, 2, INT16, "mask x"); + PrintField(buf, 26, 2, INT16, "mask y"); + PrintField(buf, 28, 2, INT16, "dest x"); + PrintField(buf, 30, 2, INT16, "dest y"); + PrintField(buf, 32, 2, CARD16, "width"); + PrintField(buf, 34, 2, CARD16, "height"); } void RenderScale (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTURE, "source"); + PrintField(buf, 8, 4, PICTURE, "dest"); + PrintField(buf, 12, 4, CARD32, "color scale"); + PrintField(buf, 16, 4, CARD32, "alpha scale"); + PrintField(buf, 20, 2, INT16, "source x"); + PrintField(buf, 22, 2, INT16, "source y"); + PrintField(buf, 24, 2, INT16, "dest x"); + PrintField(buf, 26, 2, INT16, "dest y"); + PrintField(buf, 28, 2, CARD16, "width"); + PrintField(buf, 30, 2, CARD16, "height"); } void RenderTrapezoids (FD fd, const unsigned char *buf) { int n; - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); PrintField (buf, 4, 1, PICTOP, "op"); PrintField(buf, 8, 4, PICTURE, "source"); PrintField(buf, 12, 4, PICTURE, "dest"); PrintField(buf, 16, 4, PICTFORMAT, "mask format"); - PrintField(buf, 20, 2, CARD16, "source x"); - PrintField(buf, 22, 2, CARD16, "source y"); + PrintField(buf, 20, 2, INT16, "source x"); + PrintField(buf, 22, 2, INT16, "source y"); n = (CS[fd].requestLen - 6) / 10; PrintList(&buf[24], (long)n, TRAPEZOID, "trapezoids"); } @@ -246,20 +277,17 @@ void RenderTriangles (FD fd, const unsigned char *buf) { long n; - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); PrintField (buf, 4, 1, PICTOP, "op"); PrintField(buf, 8, 4, PICTURE, "source"); PrintField(buf, 12, 4, PICTURE, "dest"); PrintField(buf, 16, 4, PICTFORMAT, "mask format"); - PrintField(buf, 20, 2, CARD16, "source x"); - PrintField(buf, 22, 2, CARD16, "source y"); + PrintField(buf, 20, 2, INT16, "source x"); + PrintField(buf, 22, 2, INT16, "source y"); n = (CS[fd].requestLen - 6) / 6; PrintList(&buf[24], (long)n, TRIANGLE, "triangles"); } @@ -267,38 +295,47 @@ RenderTriangles (FD fd, const unsigned char *buf) void RenderTriStrip (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + long n; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); + PrintField (buf, 4, 1, PICTOP, "op"); + PrintField(buf, 8, 4, PICTURE, "source"); + PrintField(buf, 12, 4, PICTURE, "dest"); + PrintField(buf, 16, 4, PICTFORMAT, "mask format"); + PrintField(buf, 20, 2, INT16, "source x"); + PrintField(buf, 22, 2, INT16, "source y"); + n = (CS[fd].requestLen - 6) / 2; + PrintList(&buf[24], n, POINTFIXED, "points"); } void RenderTriFan (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + long n; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); + PrintField (buf, 4, 1, PICTOP, "op"); + PrintField(buf, 8, 4, PICTURE, "source"); + PrintField(buf, 12, 4, PICTURE, "dest"); + PrintField(buf, 16, 4, PICTFORMAT, "mask format"); + PrintField(buf, 20, 2, INT16, "source x"); + PrintField(buf, 22, 2, INT16, "source y"); + n = (CS[fd].requestLen - 6) / 2; + PrintList(&buf[24], n, POINTFIXED, "points"); } void RenderColorTrapezoids (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); } @@ -306,12 +343,9 @@ RenderColorTrapezoids (FD fd, const unsigned char *buf) void RenderColorTriangles (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); } @@ -319,12 +353,9 @@ RenderColorTriangles (FD fd, const unsigned char *buf) void RenderTransform (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); } @@ -332,12 +363,9 @@ RenderTransform (FD fd, const unsigned char *buf) void RenderCreateGlyphSet (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); PrintField(buf, 4, 4, GLYPHSET, "glyphset"); @@ -347,25 +375,21 @@ RenderCreateGlyphSet (FD fd, const unsigned char *buf) void RenderReferenceGlyphSet (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, GLYPHSET, "glyphset"); + PrintField(buf, 4, 4, GLYPHSET, "existing"); } void RenderFreeGlyphSet (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); PrintField(buf, 4, 4, GLYPHSET, "glyphset"); @@ -397,12 +421,9 @@ PrintGlyphs(const unsigned char *buf, int n, char *name) void RenderAddGlyphs (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); PrintField(buf, 4, 4, GLYPHSET, "glyphset"); @@ -413,27 +434,22 @@ RenderAddGlyphs (FD fd, const unsigned char *buf) void RenderAddGlyphsFromPicture (FD fd, const unsigned char *buf) { - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); - + PrintField(buf, 4, 4, GLYPHSET, "glyphset"); + /* Todo: print list of glyphs */ } void RenderFreeGlyphs (FD fd, const unsigned char *buf) { unsigned short n; - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); PrintField(buf, 4, 4, GLYPHSET, "glyphset"); @@ -481,12 +497,9 @@ RenderCompositeGlyphs8 (FD fd, const unsigned char *buf) { int n; - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); n = (CS[fd].requestLen - 7) * 4; @@ -505,12 +518,9 @@ RenderCompositeGlyphs16 (FD fd, const unsigned char *buf) { int n; - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); n = (CS[fd].requestLen - 7) * 4; @@ -530,12 +540,9 @@ RenderCompositeGlyphs32 (FD fd, const unsigned char *buf) { int n; - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); n = (CS[fd].requestLen - 7) * 4; @@ -553,12 +560,9 @@ void RenderFillRectangles (FD fd, const unsigned char *buf) { int n; - PrintField (buf, 0, 1, REQUEST, REQUESTHEADER) /* RenderRequest */ ; - PrintField (buf, 1, 1, RENDERREQUEST, RENDERREQUESTHEADER) /* RenderSwitch */ ; + RenderRequestHeader (fd, buf); if (Verbose < 1) return; - if (Verbose > 1) - PrintField(SBf, 0, 4, CARD32, "sequence number"); printreqlen(buf, fd, CONST2(2)); n = (CS[fd].requestLen - 5) / 2; @@ -568,6 +572,165 @@ RenderFillRectangles (FD fd, const unsigned char *buf) (void)PrintList(&buf[20], (long)n, RECTANGLE, "rectangles"); } +void +RenderCreateCursor (FD fd, const unsigned char *buf) +{ + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, CURSOR, "cursor-id"); + PrintField(buf, 8, 4, PICTURE, "source"); + PrintField(buf, 12, 2, CARD16, "x"); + PrintField(buf, 14, 2, CARD16, "y"); +} + +void +RenderSetPictureTransform (FD fd, const unsigned char *buf) +{ + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTURE, "picture"); + PrintField(buf, 8, 9 * 8, RENDERTRANSFORM, "transform"); +} + +void +RenderQueryFilters (FD fd, const unsigned char *buf) +{ + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, DRAWABLE, "drawable"); +} + +void +RenderQueryFiltersReply (FD fd, const unsigned char *buf) +{ + long a; + long f; + + PrintField(RBf, 0, 1, REPLY, REPLYHEADER) /* RenderRequest reply */ ; + PrintField(RBf, 1, 1, RENDERREPLY, RENDERREPLYHEADER) /* RenderQueryFilters reply */; + if (Verbose < 1) + return; + printfield(buf, 2, 2, CARD16, "sequence number"); + printfield(buf, 4, 4, DVALUE4(0), "reply length"); + a = ILong (&buf[8]); + f = ILong (&buf[12]); + PrintList (&buf[32], a, FILTERALIAS, "aliases"); + PrintListSTR (&buf[32 + (2 * a)], f, "filters"); +} + + +void +RenderSetPictureFilter (FD fd, const unsigned char *buf) +{ + int n; + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTURE, "picture"); + n = IShort(&buf[8]); + PrintString8(&buf[12], n, "filter"); + /* Todo: print list of optional values */ +} + +void +RenderCreateAnimCursor (FD fd, const unsigned char *buf) +{ + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, CURSOR, "cursor-id"); + /* Todo: print list of cursor animation elements */ +} + +void +RenderAddTraps (FD fd, const unsigned char *buf) +{ + int n; + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTURE, "picture"); + PrintField(buf, 8, 2, CARD16, "xOff"); + PrintField(buf, 10, 2, CARD16, "yOff"); + n = (CS[fd].requestLen - 3) / 10; + PrintList(&buf[24], (long)n, TRAPEZOID, "trapezoids"); +} + +void +RenderCreateSolidFill (FD fd, const unsigned char *buf) +{ + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTURE, "picture"); + PrintField(buf, 8, 8, RENDERCOLOR, "color"); +} + +void +RenderCreateLinearGradient (FD fd, const unsigned char *buf) +{ + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTURE, "picture"); + PrintField(buf, 8, 8, POINTFIXED, "p1"); + PrintField(buf, 16, 8, POINTFIXED, "p2"); + PrintField(buf, 24, 4, CARD32, "num stops"); + /* Todo: print list of stops & colors for each */ +} + +void +RenderCreateRadialGradient (FD fd, const unsigned char *buf) +{ + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTURE, "picture"); + PrintField(buf, 8, 8, POINTFIXED, "inner"); + PrintField(buf, 16, 8, POINTFIXED, "outer"); + PrintField(buf, 24, 4, FIXED, "inner_radius"); + PrintField(buf, 28, 4, FIXED, "outer_radius"); + PrintField(buf, 32, 4, CARD32, "num stops"); + /* Todo: print list of stops & colors for each */ +} + +void +RenderCreateConicalGradient (FD fd, const unsigned char *buf) +{ + RenderRequestHeader (fd, buf); + if (Verbose < 1) + return; + + printreqlen(buf, fd, CONST2(2)); + PrintField(buf, 4, 4, PICTURE, "picture"); + PrintField(buf, 8, 8, POINTFIXED, "center"); + PrintField(buf, 16, 4, FIXED, "angle"); + PrintField(buf, 20, 4, CARD32, "num stops"); + /* Todo: print list of stops & colors for each */ +} + + void RenderPictFormatError (FD fd, const unsigned char *buf) { -- cgit v1.2.1