Author: dnusinow Date: 2005-06-09 20:44:22 -0500 (Thu, 09 Jun 2005) New Revision: 47
Added: trunk/AUTHORS trunk/NEWS Modified: trunk/ChangeLog trunk/autogen.sh trunk/configure.ac trunk/debian/changelog trunk/debian/copyright trunk/protocol trunk/render.h trunk/renderproto.h Log: - Update to newest release (tagged as 0.9 by Daniel, but not in CVS that I can see) - Update debian/copyright download location Added: trunk/AUTHORS =================================================================== --- trunk/AUTHORS 2005-05-09 19:04:22 UTC (rev 46) +++ trunk/AUTHORS 2005-06-10 01:44:22 UTC (rev 47) @@ -0,0 +1 @@ +Keith Packard while at HP Cambridge Research Laboratory, and SuSE, Inc. Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2005-05-09 19:04:22 UTC (rev 46) +++ trunk/ChangeLog 2005-06-10 01:44:22 UTC (rev 47) @@ -1,3 +1,31 @@ +2004-07-29 Keith Packard <[EMAIL PROTECTED]> + + * configure.ac: + * protocol: + * render.h: + * renderproto.h: + Specify new AddTraps request. + Change pixelization specification. + +2004-07-03 Eric Anholt <[EMAIL PROTECTED]> + + * render.h: + Bugzilla #635: Correct the definition of CPLastBit to account for + ComponentAlpha, which may fix behavior of an X server's + SetPictureToDefaults. + +2004-02-03 Jim Gettys <[EMAIL PROTECTED]> + + * Add AUTHOR file. + +2004-01-15 Daniel Stone <[EMAIL PROTECTED]> + * Tag release 0.8 for first freedesktop.org clientside lib release. + +2003-11-09 Eric Anholt <[EMAIL PROTECTED]> + + * configure.ac: + Rename dist to renderext + 2003-04-21 Keith Packard <[EMAIL PROTECTED]> + Added ChangeLog Added: trunk/NEWS =================================================================== Modified: trunk/autogen.sh =================================================================== --- trunk/autogen.sh 2005-05-09 19:04:22 UTC (rev 46) +++ trunk/autogen.sh 2005-06-10 01:44:22 UTC (rev 47) @@ -1,50 +1,12 @@ #! /bin/sh -# -# $Id: autogen.sh,v 1.1 2003/04/17 18:17:05 nlevitt Exp $ -# -# runs autotools to create ./configure and friends -# -PROJECT=Render +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. -srcdir=`dirname "$0"` -test -z $srcdir && srcdir=. +ORIGDIR=`pwd` +cd $srcdir -origdir=`pwd` -cd "$srcdir" +autoreconf -v --install || exit 1 +cd $ORIGDIR || exit $? -if test -z "$AUTOGEN_SUBDIR_MODE" && test -z "$*" -then - echo "I am going to run ./configure with no arguments - if you wish " - echo "to pass any to it, please specify them on the $0 command line." -fi - -# Use the versioned executables if available. -aclocal=aclocal-1.7 -automake=automake-1.7 -$aclocal --version </dev/null >/dev/null 2>&1 || aclocal=aclocal -$automake --version </dev/null >/dev/null 2>&1 || automake=automake - - -rm -f config.guess config.sub depcomp install-sh missing mkinstalldirs -rm -f config.cache acconfig.h -rm -rf autom4te.cache - -set_option=':' -test -n "${BASH_VERSION+set}" && set_option='set' - -$set_option -x - -$aclocal $ACLOCAL_FLAGS || exit 1 -$automake --foreign --add-missing --copy || exit 1 -autoconf || exit 1 -cd "$origdir" || exit 1 - -if test -z "$AUTOGEN_SUBDIR_MODE" -then - "$srcdir/configure" "$@" || exit 1 - $set_option +x -fi - -exit 0 - +$srcdir/configure --enable-maintainer-mode "$@" Modified: trunk/configure.ac =================================================================== --- trunk/configure.ac 2005-05-09 19:04:22 UTC (rev 46) +++ trunk/configure.ac 2005-06-10 01:44:22 UTC (rev 47) @@ -1,5 +1,5 @@ dnl -dnl $Id: configure.ac,v 1.1 2003/04/17 18:16:03 nlevitt Exp $ +dnl $Id: configure.ac,v 1.4 2004/07/29 07:58:03 keithp Exp $ dnl dnl Copyright © 2003 Keith Packard, Noah Levitt dnl @@ -23,9 +23,10 @@ dnl dnl Process this file with autoconf to create configure. -AC_PREREQ([2.50]) -AC_INIT([render], [0.8]) -AM_INIT_AUTOMAKE(render, 0.8) +AC_PREREQ([2.57]) +AC_INIT([renderext], [0.9], [EMAIL PROTECTED], [renderext]) +AM_INIT_AUTOMAKE([dist-bzip2]) +AM_MAINTAINER_MODE AC_OUTPUT([Makefile render.pc]) Modified: trunk/debian/changelog =================================================================== --- trunk/debian/changelog 2005-05-09 19:04:22 UTC (rev 46) +++ trunk/debian/changelog 2005-06-10 01:44:22 UTC (rev 47) @@ -1,3 +1,9 @@ +render (1:0.9-1) UNRELEASED; urgency=low + + * New upstream release + + -- David Nusinow <[EMAIL PROTECTED]> Thu, 9 Jun 2005 21:40:01 -0400 + render (1:0.8-1) unstable; urgency=low * Sponsored upload of package prepared at Branden's request by Josh Triplett Modified: trunk/debian/copyright =================================================================== --- trunk/debian/copyright 2005-05-09 19:04:22 UTC (rev 46) +++ trunk/debian/copyright 2005-06-10 01:44:22 UTC (rev 47) @@ -1,7 +1,7 @@ This package was Debianized by Branden Robinson <[EMAIL PROTECTED]> on Sun, 4 May 2003 01:12:21 -0500. -Downloaded from: http://pdx.freedesktop.org/~xlibs/release/render-0.8.tar.gz +Downloaded from: http://cvs.freedesktop.org/xlibs/Render/ Upstream copyright: Modified: trunk/protocol =================================================================== --- trunk/protocol 2005-05-09 19:04:22 UTC (rev 46) +++ trunk/protocol 2005-06-10 01:44:22 UTC (rev 47) @@ -1,6 +1,6 @@ The X Rendering Extension - Version 0.8 - 2003-5-3 + Version 0.9 + 2004-7-23 Keith Packard [EMAIL PROTECTED] @@ -29,7 +29,7 @@ how OpenGL works. + Carl Worth for providing the sample implementation of - trapezoid rendering + trapezoid rendering and showing how broken the spec was + Sam Pottle and Jamey Sharp for helping demonstrate the correctness of the trapezoid specification. @@ -208,9 +208,13 @@ p1, p2: POINTFIX ] TRAP [ + top, bottom: SPANFIX + ] +TRAPEZOID [ top, bottom: FIXED left, right: LINEFIX ] +(TRAPEZOID is deprecated) COLORTRIANGLE [ p1, p2, p3: COLORPOINT ] @@ -372,22 +376,13 @@ 10. Polygon Rasterization -All polygons must be convex. Rendering of concave polygons is unspecified +Render provides only two kinds of polygons, trapezoids and triangles. To +improve efficiency, several different wire encodings exist for each. + +All trapezoids must be convex. Rendering of concave trapezoids is unspecified except that the result must obey the clipping rules. -Each polygon request fills the region closed by the specified path. The -path is automatically closed if the last point does not coincide with the -first point. - -A point is infinitely small and the path is an infinitely thin line. A -pixel is inside if the center point of the pixel is inside and the center -point is not on the boundary. If the center point is on the boundary, the -pixel is inside if and only if the polygon interior is immediately to its -right (x increasing direction). Pixels with centers along a horizontal edge -are a special case and are inside if and only if the polygon interior is -immediately below (y increasing direction). A polygon contains a pixel if -the pixel is inside the polygon. - +Composite Polygons are rasterized by implicit generating an alpha mask and using that in the general compositing operator along with a supplied source image: @@ -404,22 +399,21 @@ the alpha width in the fallback format before application of the compositing operator. ---- +Rasterization +Alpha values are generated by point sampling the coverage of a square +surrounding the center of each pixel by the polygon. -This needs rewriting to match current trapezoid specification and -base other polygons on that. I suspect imprecise polygons will need -to have a relaxed specification as well; hardware is unlikely to -meet the "sum to one" constraint. +In Precise poly mode, the sample points are located in a regular grid. When +alpha depth 'e' is even, the regular grid is 2**(e/2) + 1 samples wide and +2**(e/2) -1 samples high. For odd alpha depth 'o', the sample grid is 2**o +- 1 samples wide and 1 sample high. Note that odd alpha depth usually +occurs only at depth 1, so this misshapen sample grid has no ill effects. +The sample grid is centered within the pixel and then each sample point is +rounded down to a point on the sub-pixel coordinate grid. ---- +In Imprecise mode, the location of the sample points is not specified, but +the implementation must conform to the following constraints: -When rasterized in Precise mode, the pixelization will match this -specification exactly. - -When rasterized in Imprecise mode, the pixelization may deviate from this -specification by up to 1/2 pixel along any edge subject to the following -constraints: - + Abutting edges must match precisely. When specifying two polygons abutting along a common edge, if that edge is specified with the same coordinates in each polygon then the sum of alpha values for @@ -436,16 +430,6 @@ + Order independent. Two identical polygons specified with vertices in different orders must generate identical results. -Polygons can also be specified with colors for each vertex. These color -values are interpolated along the edges and across each scanline. - -When rasterized in Precise mode, the interpolated colors are exact. - -When rasterized in Imprecise mode, the color of each pixel may optionally be -interpolated from a triangle containing the pixel which is formed from any -three polygon vertices. Any interpolated color value can err up to 1 lsb in -each channel. - 11. Image Filtering When computing pixels from source and mask images, a filter may be applied @@ -460,8 +444,8 @@ Filter Name Description - Nearest Nearest neighbor filtering - Bilinear Linear interpolation in two dimensions + nearest Nearest neighbor filtering + bilinear Linear interpolation in two dimensions Additional names may be provided for any filter as aliases. A set of standard alias names are required to be mapped to a provided filter so that @@ -469,13 +453,29 @@ Alias name Intended interpretation - Fast High performance, quality similar to Nearest - Good Reasonable performance, quality similar to Bilinear - Best Highest quality available, performance may not + fast High performance, quality similar to Nearest + good Reasonable performance, quality similar to Bilinear + best Highest quality available, performance may not be suitable for interactive use Aliases must map directly to a non-aliased filter name. +There is also a set of standard filters which are not required but may be +provided. If they are provided, using the standard name, they must match +the definition specified here. + + Filter Name Description + + convolution MxN convolution filter. The values specified + in SetPictureFilter are M, N and then M * N + filter parameters. M and N must be integers + represented as fixed point numbers. + gaussian Gaussian blur. The value specified is a radius + in pixels (which can be fractional). A standard + Gaussian 2D convolution filter will be applied. + binomial Binomial blur. An approximation of a Gaussian + blur using binomial coefficients + 12. Glyph Rendering Glyphs are small alpha masks which can be stored in the X server and @@ -816,14 +816,15 @@ src-x, src-y: INT16 dst: PICTURE mask-format: PICTFORMAT or None - traps: LISTofTRAP + traps: LISTofTRAPEZOID - This request rasterizes the list of trapezoids. For each trap, the - area between the left and right edges is filled from the top to the - bottom. src-x and src-y register the pattern to the floor of the - top x and y coordinate of the left edge of the first trapezoid, they - are adjusted for subsequent trapezoids so that the pattern remains - globally aligned within the destination. + This request rasterizes the list of trapezoids. + + For each trap, the area between the left and right edges is filled + from the top to the bottom. src-x and src-y register the pattern to + the floor of the top x and y coordinate of the left edge of the + first trapezoid, they are adjusted for subsequent trapezoids so that + the pattern remains globally aligned within the destination. When mask-format is not None, trapezoids are rendered in the following way with the effective mask computed in mask-format: @@ -1110,6 +1111,19 @@ 'cursors', showing each cursor in the element for the number of milliseconds indicated by the 'delay' member of that element. +AddTraps + picture: PICTURE + off-x, off-y: INT16 + trapezoids: LISTofTRAP + + Errors: Match + + Each trap is PictOpAdd'ed to 'picture'. 'off-x', 'off-y' + are added to each coordinate. + + 'picture' must be an alpha-only picture else a 'Match' error is + returned. + 15. Extension Versioning The Render extension was developed in parallel with the implementation to @@ -1158,3 +1172,5 @@ QueryPictIndexValues 0.8: CreateAnimCursor + 0.9: + AddTrapezoids Modified: trunk/render.h =================================================================== --- trunk/render.h 2005-05-09 19:04:22 UTC (rev 46) +++ trunk/render.h 2005-06-10 01:44:22 UTC (rev 47) @@ -1,5 +1,5 @@ /* - * $Id: render.h,v 1.12 2003/04/21 17:19:22 keithp Exp $ + * $Id: render.h,v 1.14 2004/07/29 07:58:03 keithp Exp $ * * Copyright � 2000 SuSE, Inc. * @@ -33,7 +33,7 @@ #define RENDER_NAME "RENDER" #define RENDER_MAJOR 0 -#define RENDER_MINOR 8 +#define RENDER_MINOR 9 #define X_RenderQueryVersion 0 #define X_RenderQueryPictFormats 1 @@ -68,8 +68,11 @@ #define X_RenderSetPictureTransform 28 #define X_RenderQueryFilters 29 #define X_RenderSetPictureFilter 30 +/* 0.8 */ #define X_RenderCreateAnimCursor 31 -#define RenderNumberRequests (X_RenderCreateAnimCursor+1) +/* 0.9 */ +#define X_RenderAddTraps 32 +#define RenderNumberRequests (X_RenderAddTraps+1) #define BadPictFormat 0 #define BadPicture 1 @@ -150,11 +153,15 @@ #define CPPolyMode (1 << 10) #define CPDither (1 << 11) #define CPComponentAlpha (1 << 12) -#define CPLastBit 11 +#define CPLastBit 12 /* Filters included in 0.6 */ #define FilterNearest "nearest" #define FilterBilinear "bilinear" +/* Other standard, but not required filters */ +#define FilterConvolution "convolution" +#define FilterGaussian "gaussian" +#define FilterBinomial "binomial" #define FilterFast "fast" #define FilterGood "good" Modified: trunk/renderproto.h =================================================================== --- trunk/renderproto.h 2005-05-09 19:04:22 UTC (rev 46) +++ trunk/renderproto.h 2005-06-10 01:44:22 UTC (rev 47) @@ -1,5 +1,5 @@ /* - * $Id: renderproto.h,v 1.14 2003/04/21 17:19:22 keithp Exp $ + * $Id: renderproto.h,v 1.15 2004/07/29 07:58:03 keithp Exp $ * * Copyright � 2000 SuSE, Inc. * @@ -168,6 +168,18 @@ #define sz_xGlyphElt 8 +typedef struct { + Fixed l, r, y; +} xSpanFix; + +#define sz_xSpanFix 12 + +typedef struct { + xSpanFix top, bot; +} xTrap; + +#define sz_xTrap 24 + /* * requests and replies */ @@ -568,6 +580,19 @@ #define sz_xRenderCreateAnimCursorReq 8 +/* 0.9 and higher */ + +typedef struct { + CARD8 reqType; + CARD8 renderReqType; + CARD16 length B16; + Picture picture; + INT16 xOff B16; + INT16 yOff B16; +} xRenderAddTrapsReq; + +#define sz_xRenderAddTrapsReq 12 + #undef Window #undef Drawable #undef Font -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]