Distributed Multihead X
1.16.4
|
Go to the source code of this file.
Data Structures | |
struct | _dmxPictPriv |
struct | _dmxGlyphPriv |
Macros | |
#define | DMX_GET_PICT_PRIV(_pPict) (dmxPictPrivPtr)dixLookupPrivate(&(_pPict)->devPrivates, dmxPictPrivateKey) |
#define | DMX_SET_GLYPH_PRIV(_pGlyph, _pPriv) GlyphSetSetPrivate((_pGlyph), dmxGlyphSetPrivateKey, (_pPriv)) |
#define | DMX_GET_GLYPH_PRIV(_pGlyph) (dmxGlyphPrivPtr)GlyphSetGetPrivate((_pGlyph), dmxGlyphSetPrivateKey) |
Typedefs | |
typedef struct _dmxPictPriv | dmxPictPrivRec |
typedef struct _dmxPictPriv * | dmxPictPrivPtr |
typedef struct _dmxGlyphPriv | dmxGlyphPrivRec |
typedef struct _dmxGlyphPriv * | dmxGlyphPrivPtr |
Functions | |
void | dmxInitRender (void) |
void | dmxResetRender (void) |
Bool | dmxPictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats) |
void | dmxCreatePictureList (WindowPtr pWindow) |
Bool | dmxDestroyPictureList (WindowPtr pWindow) |
int | dmxCreatePicture (PicturePtr pPicture) |
void | dmxDestroyPicture (PicturePtr pPicture) |
int | dmxChangePictureClip (PicturePtr pPicture, int clipType, void *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) |
int | dmxBECreateGlyphSet (int idx, GlyphSetPtr glyphSet) |
Bool | dmxBEFreeGlyphSet (ScreenPtr pScreen, GlyphSetPtr glyphSet) |
int | dmxBECreatePicture (PicturePtr pPicture) |
Bool | dmxBEFreePicture (PicturePtr pPicture) |
This file provides access to the externally visible RENDER support functions, global variables and macros for DMX.
FIXME: Move function definitions for non-externally visible function to .c file.
#define DMX_GET_GLYPH_PRIV | ( | _pGlyph | ) | (dmxGlyphPrivPtr)GlyphSetGetPrivate((_pGlyph), dmxGlyphSetPrivateKey) |
Get the glyphset private data given a glyphset pointer
Referenced by dmxBECreateGlyphSet(), dmxBEFreeGlyphSet(), dmxBERestoreRenderGlyph(), dmxProcRenderAddGlyphs(), dmxProcRenderCompositeGlyphs(), dmxProcRenderFreeGlyphs(), and dmxProcRenderFreeGlyphSet().
#define DMX_GET_PICT_PRIV | ( | _pPict | ) | (dmxPictPrivPtr)dixLookupPrivate(&(_pPict)->devPrivates, dmxPictPrivateKey) |
Get the picture private data given a picture pointer
Referenced by dmxBECreatePicture(), dmxBEFreePicture(), dmxChangePicture(), dmxChangePictureClip(), dmxComposite(), dmxCompositeRects(), dmxCreatePicture(), dmxCreatePictureList(), dmxDestroyPictureClip(), dmxProcRenderCompositeGlyphs(), dmxProcRenderSetPictureFilter(), dmxProcRenderSetPictureTransform(), dmxTrapezoids(), dmxTriangles(), and dmxValidatePicture().
#define DMX_SET_GLYPH_PRIV | ( | _pGlyph, | |
_pPriv | |||
) | GlyphSetSetPrivate((_pGlyph), dmxGlyphSetPrivateKey, (_pPriv)) |
Set the glyphset private data given a glyphset pointer
Referenced by dmxProcRenderCreateGlyphSet(), and dmxProcRenderFreeGlyphSet().
typedef struct _dmxGlyphPriv * dmxGlyphPrivPtr |
typedef struct _dmxGlyphPriv dmxGlyphPrivRec |
Glyph Set private structure
typedef struct _dmxPictPriv * dmxPictPrivPtr |
typedef struct _dmxPictPriv dmxPictPrivRec |
Picture private structure
int dmxBECreateGlyphSet | ( | int | idx, |
GlyphSetPtr | glyphSet | ||
) |
Create glyphSet on the backend screen number idx.
References _DMXScreenInfo::beDisplay, DMX_GET_GLYPH_PRIV, dmxFindFormat(), dmxGlyphErrorHandler(), dmxGlyphLastError, dmxScreens, and _dmxGlyphPriv::glyphSets.
Referenced by dmxBERestoreRenderGlyph(), and dmxProcRenderCreateGlyphSet().
int dmxBECreatePicture | ( | PicturePtr | pPicture | ) |
Create pPicture on the backend.
References DMX_GET_PICT_PRIV, dmxDoCreatePicture(), dmxValidatePicture(), and _dmxPictPriv::pict.
Referenced by dmxBERestoreRenderPict().
Bool dmxBEFreeGlyphSet | ( | ScreenPtr | pScreen, |
GlyphSetPtr | glyphSet | ||
) |
Free glyphSet on back-end screen number idx.
References _DMXScreenInfo::beDisplay, DMX_GET_GLYPH_PRIV, dmxScreens, and _dmxGlyphPriv::glyphSets.
Referenced by dmxBECreateResources(), dmxBEDestroyResources(), dmxProcRenderCreateGlyphSet(), and dmxProcRenderFreeGlyphSet().
Bool dmxBEFreePicture | ( | PicturePtr | pPicture | ) |
Destroy pPicture on the back-end server.
References _DMXScreenInfo::beDisplay, DMX_GET_PICT_PRIV, dmxScreens, and _dmxPictPriv::pict.
Referenced by dmxBEDestroyResources(), dmxDestroyPicture(), and dmxDestroyPictureList().
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.
References DMX_GET_PICT_PRIV, DMX_UNWRAP, DMX_WRAP, dmxChangePicture(), dmxScreens, and _dmxPictPriv::savedMask.
Referenced by dmxChangePicture(), and dmxPictureInit().
int dmxChangePictureClip | ( | PicturePtr | pPicture, |
int | clipType, | ||
void * | value, | ||
int | n | ||
) |
Change the picture's list of clip rectangles.
References _DMXScreenInfo::beDisplay, DMX_GET_PICT_PRIV, DMX_UNWRAP, DMX_WRAP, dmxChangePictureClip(), dmxScreens, dmxSync(), and _dmxPictPriv::pict.
Referenced by dmxChangePictureClip(), and dmxPictureInit().
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.
References _DMXScreenInfo::beDisplay, DMX_GET_PICT_PRIV, DMX_UNWRAP, DMX_WRAP, dmxComposite(), dmxScreens, dmxSync(), and _dmxPictPriv::pict.
Referenced by dmxComposite(), and dmxPictureInit().
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.
References _DMXScreenInfo::beDisplay, DMX_GET_PICT_PRIV, DMX_UNWRAP, DMX_WRAP, dmxCompositeRects(), dmxScreens, dmxSync(), and _dmxPictPriv::pict.
Referenced by dmxCompositeRects(), and dmxPictureInit().
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.
References DMX_GET_PICT_PRIV, DMX_UNWRAP, DMX_WRAP, dmxCreatePicture(), dmxDoCreatePicture(), dmxScreens, _dmxPictPriv::pict, and _dmxPictPriv::savedMask.
Referenced by dmxCreatePicture(), and dmxPictureInit().
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.
References DMX_GET_PICT_PRIV, dmxDoCreatePicture(), and _dmxPictPriv::pict.
Referenced by dmxCreateAndRealizeWindow().
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.
References DMX_UNWRAP, DMX_WRAP, dmxBEFreePicture(), dmxDestroyPicture(), dmxScreens, and dmxSync().
Referenced by dmxDestroyPicture(), and dmxPictureInit().
void dmxDestroyPictureClip | ( | PicturePtr | pPicture | ) |
Destroy the picture's list of clip rectangles.
References _DMXScreenInfo::beDisplay, DMX_GET_PICT_PRIV, DMX_UNWRAP, DMX_WRAP, dmxDestroyPictureClip(), dmxScreens, dmxSync(), and _dmxPictPriv::pict.
Referenced by dmxDestroyPictureClip(), and dmxPictureInit().
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().
References dmxBEFreePicture().
Referenced 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.
Referenced by dmxPictureInit().
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.
References dmxProcRenderAddGlyphs(), dmxProcRenderCompositeGlyphs(), dmxProcRenderCreateGlyphSet(), dmxProcRenderFreeGlyphs(), dmxProcRenderFreeGlyphSet(), dmxProcRenderSetPictureFilter(), dmxProcRenderSetPictureTransform(), dmxSaveRenderVector, and ProcRenderVector.
Referenced by InitOutput().
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.
References DMX_WRAP, dmxChangePicture(), dmxChangePictureClip(), dmxComposite(), dmxCompositeRects(), dmxCreatePicture(), dmxDestroyPicture(), dmxDestroyPictureClip(), dmxGlyphs(), dmxPictPrivateKeyRec, dmxScreens, dmxTrapezoids(), dmxTriangles(), and dmxValidatePicture().
Referenced by dmxScreenInit().
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).
References dmxSaveRenderVector, and ProcRenderVector.
Referenced by dmxCloseScreen().
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.
References _DMXScreenInfo::beDisplay, DMX_GET_PICT_PRIV, DMX_UNWRAP, DMX_WRAP, dmxFindFormat(), dmxScreens, dmxSync(), dmxTrapezoids(), and _dmxPictPriv::pict.
Referenced by dmxPictureInit(), and dmxTrapezoids().
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.
References _DMXScreenInfo::beDisplay, DMX_GET_PICT_PRIV, DMX_UNWRAP, DMX_WRAP, dmxFindFormat(), dmxScreens, dmxSync(), dmxTriangles(), and _dmxPictPriv::pict.
Referenced by dmxPictureInit(), and dmxTriangles().
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.
References _DMXScreenInfo::beDisplay, DMX_GET_PICT_PRIV, DMX_UNWRAP, DMX_WRAP, dmxScreens, dmxSync(), dmxValidatePicture(), _dmxPictPriv::pict, and _dmxPictPriv::savedMask.
Referenced by dmxBECreatePicture(), dmxPictureInit(), and dmxValidatePicture().