summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@sun.com>2009-10-01 22:18:24 -0700
committerAlan Coopersmith <alan.coopersmith@sun.com>2009-10-01 22:18:24 -0700
commit7aecfa578192aeb37e8f82ff827695fb4d4b5c1b (patch)
tree0998989826e4c56235766141e9ded66d8d1a1839
parent16e0cf42ff7d160c1b917c1e671d8832359986ca (diff)
Move specs/Render/library to libXrender module
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
-rw-r--r--Makefile.am1
-rw-r--r--specs/Render/library600
2 files changed, 0 insertions, 601 deletions
diff --git a/Makefile.am b/Makefile.am
index 28b8922..e4e52b2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -43,7 +43,6 @@ EXTRA_DIST = \
specs/ICE/ICElib.ms \
specs/ICE/ice.ms \
specs/PM/PM_spec \
- specs/Render/library \
specs/rstart/fix.awk \
specs/rstart/fix.nawk \
specs/rstart/fix.sed \
diff --git a/specs/Render/library b/specs/Render/library
deleted file mode 100644
index 97081c1..0000000
--- a/specs/Render/library
+++ /dev/null
@@ -1,600 +0,0 @@
- The Xrender Library
- Version 0.7
- 2002-11-6
- Keith Packard
- keithp@xfree86.org
-
-1. Introduction
-
-The Xrender library is designed as a lightweight library interface to the
-Render extension. This document describes how the library maps to the
-protocol without duplicating the semantics described by that document.
-
-2. Data Types
-
-2.1 Primitive Types
-
-For resources represented as CARD32 or XID on the wire, Xrender exposes them
-using an 'unsigned long' type as is the norm for 32-bit data objects in an
-Xlib compatible API.
-
- typedef unsigned long Glyph;
- typedef unsigned long GlyphSet;
- typedef unsigned long Picture;
- typedef unsigned long PictFormat;
-
-Glyphs are just CARD32 objects, while GlyphSet, Picture and PictFormat
-values are XIDs.
-
- typedef int XFixed;
-
-Fixed point numbers buck the Xlib convention by being represented as ints.
-Machines for which 'int' is smaller than 32 bits cannot support the Xrender
-library.
-
-2.2 PictFormat descriptions.
-
-The definition of a PictFormat is exposed by two data structures:
-
- typedef struct {
- short red;
- short redMask;
- short green;
- short greenMask;
- short blue;
- short blueMask;
- short alpha;
- short alphaMask;
- } XRenderDirectFormat;
-
- typedef struct {
- PictFormat id;
- int type;
- int depth;
- XRenderDirectFormat direct;
- Colormap colormap;
- } XRenderPictFormat;
-
-These serve both as a description of the available formats and as patterns
-against which available formats are matched.
-
-2.3 Picture Attributes
-
-When creating or changing Picture objects, attributes are passed much as
-they are for XCreateWindow/XChangeWindowAttributes. A structure capable of
-holding all of the attributes has the relevant ones set and a bitmask passed
-as a separate argument which marks the valid entries.
-
- typedef struct _XRenderPictureAttributes {
- Bool repeat;
- Picture alpha_map;
- int alpha_x_origin;
- int alpha_y_origin;
- int clip_x_origin;
- int clip_y_origin;
- Pixmap clip_mask;
- Bool graphics_exposures;
- int subwindow_mode;
- int poly_edge;
- int poly_mode;
- Atom dither;
- Bool component_alpha;
- } XRenderPictureAttributes;
-
-2.4 Colors
-
-The core protocol XColor type doesn't include an alpha component, so Xrender
-has a separate type.
-
- typedef struct {
- unsigned short red;
- unsigned short green;
- unsigned short blue;
- unsigned short alpha;
- } XRenderColor;
-
-2.5 Glyph Types
-
-Glyphs are stored in the server, so these definitions are passed from the
-client to the library and on to the server as glyphs are rasterized and
-transmitted over the wire.
-
- typedef struct _XGlyphInfo {
- unsigned short width;
- unsigned short height;
- short x;
- short y;
- short xOff;
- short yOff;
- } XGlyphInfo;
-
-2.6 Glyph Rendering types
-
-Glyph rendering can either take a single string of glyph indices or an array
-of one of the following structures.
-
- typedef struct _XGlyphElt8 {
- GlyphSet glyphset;
- _Xconst char *chars;
- int nchars;
- int xOff;
- int yOff;
- } XGlyphElt8;
-
- typedef struct _XGlyphElt16 {
- GlyphSet glyphset;
- _Xconst unsigned short *chars;
- int nchars;
- int xOff;
- int yOff;
- } XGlyphElt16;
-
- typedef struct _XGlyphElt32 {
- GlyphSet glyphset;
- _Xconst unsigned int *chars;
- int nchars;
- int xOff;
- int yOff;
- } XGlyphElt32;
-
-2.7 Geometric Types
-
-Geometric operations directly expose the available protocol datatypes
-
- typedef struct _XPointFixed {
- XFixed x, y;
- } XPointFixed;
-
- typedef struct _XLineFixed {
- XPointFixed p1, p2;
- } XLineFixed;
-
- typedef struct _XTriangle {
- XPointFixed p1, p2, p3;
- } XTriangle;
-
- typedef struct _XTrapezoid {
- XFixed top, bottom;
- XLineFixed left, right;
- } XTrapezoid;
-
- typedef struct _XTransform {
- XFixed matrix[3][3];
- } XTransform;
-
-2.8 Transformation Filters
-
-All of the filters are named simultaneously; Xrender provides no convenience
-functions for dealing with them.
-
- typedef struct _XFilters {
- int nfilter;
- char **filter;
- int nalias;
- short *alias;
- } XFilters;
-
-2.9 Index type PictFormat colors
-
-PictFormats of Index type advertise which colors will be used for drawing
-through this type.
-
- typedef struct _XIndexValue {
- unsigned long pixel;
- unsigned short red, green, blue, alpha;
- } XIndexValue;
-
-
-3 Application Startup Functions
-
-3.1 Initialization functions
-
- Bool XRenderQueryExtension (Display *dpy,
- int *event_basep,
- int *error_basep)
-
-This function returns True if the Render extension is available on dpy.
-event_basep and error_basep will be filled in with the first event and error
-numbers used by the extension (note that Render currently uses no events).
-
- Status XRenderQueryVersion (Display *dpy,
- int *major_versionp,
- int *minor_versionp)
-
-XRenderQueryVersion returns zero if the Render extension is not present or
-some error occurred while attempting to discover the current Render version
-number. Otherwise, XRenderQueryVersion returns 1 and stores the version
-number returned by the server in *major_versionp and *minor_versionp, which
-will be less than or equal to the library version numbers RENDER_MAJOR and
-RENDER_MINOR.
-
- Status XRenderQueryFormats (Display *dpy)
-
-XRenderQueryFormats returns 1 if it successfully fetches the available
-PictFormat information from the X server, 0 otherwise. Applications needn't
-invoke this function directly (hmm, perhaps it should be removed from the
-external interfaces then).
-
-3.2 Subpixel Order
-
- int XRenderQuerySubpixelOrder (Display *dpy, int screen)
-
- Bool XRenderSetSubpixelOrder (Display *dpy, int screen, int subpixel)
-
-Applications interested in the geometry of the elements making up a single
-pixel on the screen should use XRenderQuerySubpixelOrder and not cache the
-return value. XRenderSetSubpixelOrder is used by the XRandR library to
-update the value stored by Xrender when the subpixel order changes as a
-result of screen reconfiguration.
-
-3.3 PictFormat matching
-
-Xrender provides these APIs to help locate appropriate PictFormats; they are
-intended to work much like the Visual matching APIs in Xlib. The
-application provides a specification including the necessary PictFormat
-characteristics and Xrender returns a matching XRenderPictFormat structure
-which describes the PictFormat.
-
- XRenderPictFormat *
- XRenderFindFormat (Display *dpy,
- unsigned long mask,
- _Xconst XRenderPictFormat *templ,
- int count)
-
- #define PictFormatID (1 << 0)
- #define PictFormatType (1 << 1)
- #define PictFormatDepth (1 << 2)
- #define PictFormatRed (1 << 3)
- #define PictFormatRedMask (1 << 4)
- #define PictFormatGreen (1 << 5)
- #define PictFormatGreenMask (1 << 6)
- #define PictFormatBlue (1 << 7)
- #define PictFormatBlueMask (1 << 8)
- #define PictFormatAlpha (1 << 9)
- #define PictFormatAlphaMask (1 << 10)
- #define PictFormatColormap (1 << 11)
-
-XRenderFindFormat locates a PictFormat matching the characteristics provided
-in the templ. Only elements whose associated bit in mask are compared.
-
- XRenderPictFormat *
- XRenderFindVisualFormat (Display *dpy, _Xconst Visual *visual)
-
-Finds the PictFormat suitable for use with the specified visual.
-
- XRenderPictFormat *
- XRenderFindStandardFormat (Display *dpy,
- int format)
-
- #define PictStandardARGB32 0
- #define PictStandardRGB24 1
- #define PictStandardA8 2
- #define PictStandardA4 3
- #define PictStandardA1 4
- #define PictStandardNUM 5
-
-As a convenience, this function locates PictFormats that coorespond to
-commonly used formats.
-
- ARGB32 depth 32, bits 31-24 A, 23-16 R, 15-8 G, 7-0 B
- RGB24 depth 24, bits 23-16 R, 15-8 G, 7-0 B
- A8 depth 8, bits 7-0 A
- A4 depth 4, bits 3-0 A
- A1 depth 1, bits 0 A
-
-Any server supporting Render must have a PictFormat cooresponding to each of
-these standard formats.
-
-3.4 Index type PictFormat color values
-
- XIndexValue *
- XRenderQueryPictIndexValues(Display *dpy,
- _Xconst XRenderPictFormat *format,
- int *num)
-
-If format refers to an Index type PictFormat, XRenderQueryPictIndexValues
-returns the set of pixel values and their associated colors used when
-drawing to Pictures created with that format. Otherwise,
-XRenderQueryPictIndexValues generates a BadMatch error.
-
-3.5 Querying available filters
-
- XFilters *
- XRenderQueryFilters (Display *dpy, Drawable drawable);
-
-Filters are used with non-identity transformation matrices, this function
-returns a datastructure identifying the available filters on display that
-can be associated with pictures for the screen associated with drawable.
-
-Free this structure with XFree.
-
-4 Picture Functions
-
- Picture
- XRenderCreatePicture (Display *dpy,
- Drawable drawable,
- _Xconst XRenderPictFormat *format,
- unsigned long valuemask,
- _Xconst XRenderPictureAttributes *attributes)
-
- #define CPRepeat (1 << 0)
- #define CPAlphaMap (1 << 1)
- #define CPAlphaXOrigin (1 << 2)
- #define CPAlphaYOrigin (1 << 3)
- #define CPClipXOrigin (1 << 4)
- #define CPClipYOrigin (1 << 5)
- #define CPClipMask (1 << 6)
- #define CPGraphicsExposure (1 << 7)
- #define CPSubwindowMode (1 << 8)
- #define CPPolyEdge (1 << 9)
- #define CPPolyMode (1 << 10)
- #define CPDither (1 << 11)
- #define CPComponentAlpha (1 << 12)
- #define CPLastBit 11
-
-Creates a picture for drawable in the specified format. Any values
-specified in 'attributes' and 'valuemask' are used in place of the default
-values.
-
- void
- XRenderChangePicture (Display *dpy,
- Picture picture,
- unsigned long valuemask,
- _Xconst XRenderPictureAttributes *attributes)
-
-Change values in picture to those specified by valuemask and attributes.
-
-
- void
- XRenderSetPictureClipRectangles (Display *dpy,
- Picture picture,
- int xOrigin,
- int yOrigin,
- _Xconst XRectangle *rects,
- int n)
-
-Sets the clip mask in picture to the union of rects offset by
-xOrigin/yOrigin.
-
- void
- XRenderSetPictureClipRegion (Display *dpy,
- Picture picture,
- Region r)
-
-Sets the clip mask in picture to r.
-
- void
- XRenderSetPictureTransform (Display *dpy,
- Picture picture,
- XTransform *transform)
-
-Sets the projective transformation matrix of picture to transform.
-
- void
- XRenderFreePicture (Display *dpy,
- Picture picture)
-
-Instructs the server to free picture.
-
-5 GlyphSet functions
-
- GlyphSet
- XRenderCreateGlyphSet (Display *dpy, _Xconst XRenderPictFormat *format)
-
-Creates a glyphset, every glyph in the set will use PictFormat format.
-
- GlyphSet
- XRenderReferenceGlyphSet (Display *dpy, GlyphSet existing)
-
-Creates a new GlyphSet ID which references an existing GlyphSet. The
-two IDs refer to the same object so that changes using one ID will be
-visible through the other ID. This is designed to allow multiple clients to
-share the same GlyphSet so that it doesn't get destroyed when the first
-client exits.
-
- void
- XRenderFreeGlyphSet (Display *dpy, GlyphSet glyphset)
-
-Frees the glyphset ID. If no other GlyphSet IDs refer to the underlying
-GlyphSet, it will be destroyed.
-
- void
- XRenderAddGlyphs (Display *dpy,
- GlyphSet glyphset,
- _Xconst Glyph *gids,
- _Xconst XGlyphInfo *glyphs,
- int nglyphs,
- _Xconst char *images,
- int nbyte_images)
-
-Add glyphs to glyphset. The images are packed together in Z-pixmap format
-according to the depth of the PictFormat used in creating glyphset.
-
- void
- XRenderFreeGlyphs (Display *dpy,
- GlyphSet glyphset,
- _Xconst Glyph *gids,
- int nglyphs)
-
-Free some glyphs from glyphset.
-
-6 Glyph Drawing Routines
-
-Xrender provides two parallel APIs for glyph rendering, a simple API which
-accepts a single string similar to XDrawString and a more complex API which
-accepts an array of XGlyphElt{8,16,32} structures, each of which includes a
-glyphset, string and x/y offsets which parallel the XDrawText API. Xrender
-also provides glyphs in three sizes, 8 16 and 32 bits. The simple API is
-just a convenience for the user as both forms generate the same underlying
-Render protocol.
-
-6.1 Simple single-string glyph drawing functions
-
-These are identical except for the format of the glyph ids.
-
- void
- XRenderCompositeString8 (Display *dpy,
- int op,
- Picture src,
- Picture dst,
- _Xconst XRenderPictFormat *maskFormat,
- GlyphSet glyphset,
- int xSrc,
- int ySrc,
- int xDst,
- int yDst,
- _Xconst char *string,
- int nchar)
-
- void
- XRenderCompositeString16 (Display *dpy,
- int op,
- Picture src,
- Picture dst,
- _Xconst XRenderPictFormat *maskFormat,
- GlyphSet glyphset,
- int xSrc,
- int ySrc,
- int xDst,
- int yDst,
- _Xconst unsigned short *string,
- int nchar)
-
- void
- XRenderCompositeString32 (Display *dpy,
- int op,
- Picture src,
- Picture dst,
- _Xconst XRenderPictFormat *maskFormat,
- GlyphSet glyphset,
- int xSrc,
- int ySrc,
- int xDst,
- int yDst,
- _Xconst unsigned int *string,
- int nchar)
-
-6.2 Complete glyph drawing functions
-
-As with the simple functions above, these differ only in the type of the
-underlying glyph id storage type.
-
- void
- XRenderCompositeText8 (Display *dpy,
- int op,
- Picture src,
- Picture dst,
- _Xconst XRenderPictFormat *maskFormat,
- int xSrc,
- int ySrc,
- int xDst,
- int yDst,
- _Xconst XGlyphElt8 *elts,
- int nelt)
-
- void
- XRenderCompositeText16 (Display *dpy,
- int op,
- Picture src,
- Picture dst,
- _Xconst XRenderPictFormat *maskFormat,
- int xSrc,
- int ySrc,
- int xDst,
- int yDst,
- _Xconst XGlyphElt16 *elts,
- int nelt)
-
- void
- XRenderCompositeText32 (Display *dpy,
- int op,
- Picture src,
- Picture dst,
- _Xconst XRenderPictFormat *maskFormat,
- int xSrc,
- int ySrc,
- int xDst,
- int yDst,
- _Xconst XGlyphElt32 *elts,
- int nelt)
-
-7 Basic Graphics Functions
-
-These are the simplest graphics functions upon which the other functions are
-conceptually built.
-
-7.1 Composite
-
-XRenderComposite exposes the RenderComposite protocol request directly.
-
- void
- XRenderComposite (Display *dpy,
- int op,
- Picture src,
- Picture mask,
- Picture dst,
- int src_x,
- int src_y,
- int mask_x,
- int mask_y,
- int dst_x,
- int dst_y,
- unsigned int width,
- unsigned int height)
-
-
-7.2 Rectangles
-
-These functions composite rectangles of the specified color, they differ
-only in that XRenderFillRectangles draws more than one at a time.
-
- void
- XRenderFillRectangle (Display *dpy,
- int op,
- Picture dst,
- _Xconst XRenderColor *color,
- int x,
- int y,
- unsigned int width,
- unsigned int height)
-
- void
- XRenderFillRectangles (Display *dpy,
- int op,
- Picture dst,
- _Xconst XRenderColor *color,
- _Xconst XRectangle *rectangles,
- int n_rects)
-
-8 Geometric Objects
-
-All geometric drawing with Render is performed with sequences of trapezoids
-or triangles; the client is responsible for breaking more complex figures
-into these simple shapes.
-
-8.1 Trapezoids
-
- void
- XRenderCompositeTrapezoids (Display *dpy,
- int op,
- Picture src,
- Picture dst,
- _Xconst XRenderPictFormat *maskFormat,
- int xSrc,
- int ySrc,
- _Xconst XTrapezoid *traps,
- int ntrap)
-
-XRenderCompositeTrapezoids builds RenderTrapezoids requests to composite the
-specified list of trapezoids to dst. XRenderCompositeTrapezoids will split
-the list of trapezoids to build requests no larger than the maximum request
-size supported by the server. This can create rendering artifacts as the
-precompositing done by RenderTrapezoids when a maskFormat is specified
-cannot span multiple requests.
-
-8.2 Triangles
-
-Render provides three different ways of encoding triangles on the wire,
-Xrender exposes those with three separate triangle drawing routines. As
-with trapezoids above, Xrender will split the arguments to fit requests into
-the servers limits, but this may cause rendering artifacts.