# dmxpict.c File Reference

`#include "dmx.h"`
`#include "dmxsync.h"`
`#include "dmxpict.h"`
`#include "dmxwindow.h"`
`#include "dmxpixmap.h"`
`#include "fb.h"`
`#include "pixmapstr.h"`
`#include "dixstruct.h"`
`#include "render.h"`
`#include "renderproto.h"`
`#include "picture.h"`
`#include "picturestr.h"`
`#include "mipict.h"`
`#include "fbpict.h"`

## Functions

void | dmxInitRender (void)
void | dmxResetRender (void)
Bool | dmxPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
Bool | dmxBEFreeGlyphSet (ScreenPtr pScreen, GlyphSetPtr glyphSet)
void | dmxCreatePictureList (WindowPtr pWindow)
int | dmxCreatePicture (PicturePtr pPicture)
Bool | dmxBEFreePicture (PicturePtr pPicture)
Bool | dmxDestroyPictureList (WindowPtr pWindow)
void | dmxDestroyPicture (PicturePtr pPicture)
int | dmxChangePictureClip (PicturePtr pPicture, int clipType, pointer value, int n)
void | dmxDestroyPictureClip (PicturePtr pPicture)
void | dmxChangePicture (PicturePtr pPicture, Mask mask)
void | dmxValidatePicture (PicturePtr pPicture, Mask mask)
void | dmxComposite (CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst, INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst, INT16 yDst, CARD16 width, CARD16 height)
void | dmxGlyphs (CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int nlists, GlyphListPtr lists, GlyphPtr *glyphs)
void | dmxCompositeRects (CARD8 op, PicturePtr pDst, xRenderColor *color, int nRect, xRectangle *rects)
Bool | dmxInitIndexed (ScreenPtr pScreen, PictFormatPtr pFormat)
void | dmxCloseIndexed (ScreenPtr pScreen, PictFormatPtr pFormat)
void | dmxUpdateIndexed (ScreenPtr pScreen, PictFormatPtr pFormat, int ndef, xColorItem *pdef)
void | dmxTrapezoids (CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int ntrap, xTrapezoid *traps)
void | dmxTriangles (CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int ntri, xTriangle *tris)
void | dmxTriStrip (CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int npoint, xPointFixed *points)
void | dmxTriFan (CARD8 op, PicturePtr pSrc, PicturePtr pDst, PictFormatPtr maskFormat, INT16 xSrc, INT16 ySrc, int npoint, xPointFixed *points)

## Detailed Description

Provide support for the RENDER extension (version 0.8).

## Function Documentation

Bool dmxBEFreeGlyphSet | ( | ScreenPtr | pScreen,
|  | GlyphSetPtr | glyphSet
| ) |

| Free glyphSet on back-end screen number idx.

Bool dmxBEFreePicture | ( | PicturePtr | pPicture | ) |

| Destroy pPicture on the back-end server.

void dmxChangePicture | ( | PicturePtr | pPicture,
|  | Mask | mask
| ) |

| Change the attributes of the pictures. If the picture has not yet been created due to lazy window creation, save the mask so that it can be used to appropriately initialize the picture's attributes when it is created later.

int dmxChangePictureClip | ( | PicturePtr | pPicture,
|  | int | clipType,
|  | pointer | value,
|  | int | n
| ) |

| Change the picture's list of clip rectangles.

void dmxCloseIndexed | ( | ScreenPtr | pScreen,
|  | PictFormatPtr | pFormat
| ) |

| Indexed color visuals are not yet supported.

void dmxComposite | ( | CARD8 | op,
|  | PicturePtr | pSrc,
|  | PicturePtr | pMask,
|  | PicturePtr | pDst,
|  | INT16 | xSrc,
|  | INT16 | ySrc,
|  | INT16 | xMask,
|  | INT16 | yMask,
|  | INT16 | xDst,
|  | INT16 | yDst,
|  | CARD16 | width,
|  | CARD16 | height
| ) |

| Composite a picture on the appropriate screen by combining the specified rectangle of the transformed src and mask operands with the specified rectangle of the dst using op as the compositing operator. For a complete description see the protocol document of the RENDER library.

void dmxCompositeRects | ( | CARD8 | op,
|  | PicturePtr | pDst,
|  | xRenderColor * | color,
|  | int | nRect,
|  | xRectangle * | rects
| ) |

| Fill a rectangle on the appropriate screen by combining the color with the dest picture in the area specified by the list of rectangles. For a complete description see the protocol document of the RENDER library.

int dmxCreatePicture | ( | PicturePtr | pPicture | ) |

| Create a picture. This function handles the CreatePicture unwrapping/wrapping and calls dmxDoCreatePicture to actually create the picture on the appropriate screen.

void dmxCreatePictureList | ( | WindowPtr | pWindow | ) |

| Create a list of pictures. This function is called by dmxCreateAndRealizeWindow() during the lazy window creation realization process. It creates the entire list of pictures that are associated with the given window.

void dmxDestroyPicture | ( | PicturePtr | pPicture | ) |

| Destroy a picture. This function calls the wrapped function that frees the resources in the DMX server associated with this picture.

void dmxDestroyPictureClip | ( | PicturePtr | pPicture | ) |

| Destroy the picture's list of clip rectangles.

Bool dmxDestroyPictureList | ( | WindowPtr | pWindow | ) |

| Destroy a list of pictures that are associated with the window that is being destroyed. This function is called by dmxDestroyWindow().

void dmxGlyphs | ( | CARD8 | op,
|  | PicturePtr | pSrc,
|  | PicturePtr | pDst,
|  | PictFormatPtr | maskFormat,
|  | INT16 | xSrc,
|  | INT16 | ySrc,
|  | int | nlists,
|  | GlyphListPtr | lists,
|  | GlyphPtr * | glyphs
| ) |

| Null function to catch when/if RENDER calls lower level mi hooks. Compositing glyphs is handled by dmxProcRenderCompositeGlyphs(). This function should never be called.

Bool dmxInitIndexed | ( | ScreenPtr | pScreen,
|  | PictFormatPtr | pFormat
| ) |

| Indexed color visuals are not yet supported.

void dmxInitRender | ( | void |  | ) |

| Initialize the Proc Vector for the RENDER extension. The functions here cannot be handled by the mi layer RENDER hooks either because the required information is no longer available when it reaches the mi layer or no mi layer hooks exist. This function is called from InitOutput() since it should be initialized only once per server generation.

Bool dmxPictureInit | ( | ScreenPtr | pScreen,
|  | PictFormatPtr | formats,
|  | int | nformats
| ) |

| Initialize the RENDER extension, allocate the picture privates and wrap mi function hooks. If the shadow frame buffer is used, then call the appropriate fb initialization function.

void dmxResetRender | ( | void |  | ) |

| Reset the Proc Vector for the RENDER extension back to the original functions. This function is called from dmxCloseScreen() during the server reset (only for screen #0).

void dmxTrapezoids | ( | CARD8 | op,
|  | PicturePtr | pSrc,
|  | PicturePtr | pDst,
|  | PictFormatPtr | maskFormat,
|  | INT16 | xSrc,
|  | INT16 | ySrc,
|  | int | ntrap,
|  | xTrapezoid * | traps
| ) |

| Composite a list of trapezoids on the appropriate screen. For a complete description see the protocol document of the RENDER library.

void dmxTriangles | ( | CARD8 | op,
|  | PicturePtr | pSrc,
|  | PicturePtr | pDst,
|  | PictFormatPtr | maskFormat,
|  | INT16 | xSrc,
|  | INT16 | ySrc,
|  | int | ntri,
|  | xTriangle * | tris
| ) |

| Composite a list of triangles on the appropriate screen. For a complete description see the protocol document of the RENDER library.

void dmxTriFan | ( | CARD8 | op,
|  | PicturePtr | pSrc,
|  | PicturePtr | pDst,
|  | PictFormatPtr | maskFormat,
|  | INT16 | xSrc,
|  | INT16 | ySrc,
|  | int | npoint,
|  | xPointFixed * | points
| ) |

| Composite a triangle fan on the appropriate screen. For a complete description see the protocol document of the RENDER library.

void dmxTriStrip | ( | CARD8 | op,
|  | PicturePtr | pSrc,
|  | PicturePtr | pDst,
|  | PictFormatPtr | maskFormat,
|  | INT16 | xSrc,
|  | INT16 | ySrc,
|  | int | npoint,
|  | xPointFixed * | points
| ) |

| Composite a triangle strip on the appropriate screen. For a complete description see the protocol document of the RENDER library.

void dmxUpdateIndexed | ( | ScreenPtr | pScreen,
|  | PictFormatPtr | pFormat,
|  | int | ndef,
|  | xColorItem * | pdef
| ) |

| Indexed color visuals are not yet supported.

void dmxValidatePicture | ( | PicturePtr | pPicture,
|  | Mask | mask
| ) |

| Validate the picture's attributes before rendering to it. Update any picture attributes that have been changed by one of the higher layers.

Generated June 29, 2004 for Distributed Multihead X by doxygen 1.3.4. </addres>