X Strike Force Render SVN commit: r47 - in trunk: . debian
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 <keithp@keithp.com>
+
+ * configure.ac:
+ * protocol:
+ * render.h:
+ * renderproto.h:
+ Specify new AddTraps request.
+ Change pixelization specification.
+
+2004-07-03 Eric Anholt <anholt@FreeBSD.org>
+
+ * 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 <jg@freedesktop.org>
+
+ * Add AUTHOR file.
+
+2004-01-15 Daniel Stone <daniel@fooishbar.org>
+ * Tag release 0.8 for first freedesktop.org clientside lib release.
+
+2003-11-09 Eric Anholt <anholt@FreeBSD.org>
+
+ * configure.ac:
+ Rename dist to renderext
+
2003-04-21 Keith Packard <keithp@keithp.com>
+ 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], [keithp@keithp.com], [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 <dnusinow@debian.org> 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 <branden@debian.org> 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
keithp@keithp.com
@@ -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
Reply to: