Missed one
This commit is contained in:
parent
858b4bc14a
commit
b1efb3810c
|
@ -1,425 +0,0 @@
|
||||||
/*
|
|
||||||
* $XFree86: xc/programs/Xserver/miext/layer/layerstr.h,v 1.2 2001/06/04 09:45:41 keithp Exp $
|
|
||||||
*
|
|
||||||
* Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc.
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, distribute, and sell this software and its
|
|
||||||
* documentation for any purpose is hereby granted without fee, provided that
|
|
||||||
* the above copyright notice appear in all copies and that both that
|
|
||||||
* copyright notice and this permission notice appear in supporting
|
|
||||||
* documentation, and that the name of Keith Packard not be used in
|
|
||||||
* advertising or publicity pertaining to distribution of the software without
|
|
||||||
* specific, written prior permission. Keith Packard makes no
|
|
||||||
* representations about the suitability of this software for any purpose. It
|
|
||||||
* is provided "as is" without express or implied warranty.
|
|
||||||
*
|
|
||||||
* KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
|
||||||
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
|
|
||||||
* EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
|
||||||
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
|
|
||||||
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
||||||
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
||||||
* PERFORMANCE OF THIS SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifdef HAVE_DIX_CONFIG_H
|
|
||||||
#include <dix-config.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _LAYERSTR_H_
|
|
||||||
#define _LAYERSTR_H_
|
|
||||||
|
|
||||||
#include <X11/X.h>
|
|
||||||
#include "scrnintstr.h"
|
|
||||||
#include "windowstr.h"
|
|
||||||
#include <X11/fonts/font.h>
|
|
||||||
#include "dixfontstr.h"
|
|
||||||
#include <X11/fonts/fontstruct.h>
|
|
||||||
#include "mi.h"
|
|
||||||
#include "regionstr.h"
|
|
||||||
#include "globals.h"
|
|
||||||
#include "gcstruct.h"
|
|
||||||
#include "layer.h"
|
|
||||||
#ifdef RENDER
|
|
||||||
#include "picturestr.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern int layerScrPrivateIndex;
|
|
||||||
extern int layerGCPrivateIndex;
|
|
||||||
extern int layerWinPrivateIndex;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* One of these for each possible set of underlying
|
|
||||||
* rendering code. The first kind always points at the
|
|
||||||
* underlying frame buffer code and is created in LayerStartInit
|
|
||||||
* so that LayerNewKind can unwrap the screen and prepare it
|
|
||||||
* for another wrapping sequence.
|
|
||||||
*
|
|
||||||
* The set of functions wrapped here must be at least the union
|
|
||||||
* of all functions wrapped by any rendering layer in use; they're
|
|
||||||
* easy to add, so don't be shy
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct _LayerKind {
|
|
||||||
int kind; /* kind index */
|
|
||||||
|
|
||||||
CloseScreenProcPtr CloseScreen;
|
|
||||||
|
|
||||||
CreateWindowProcPtr CreateWindow;
|
|
||||||
DestroyWindowProcPtr DestroyWindow;
|
|
||||||
ChangeWindowAttributesProcPtr ChangeWindowAttributes;
|
|
||||||
PaintWindowBackgroundProcPtr PaintWindowBackground;
|
|
||||||
PaintWindowBorderProcPtr PaintWindowBorder;
|
|
||||||
CopyWindowProcPtr CopyWindow;
|
|
||||||
|
|
||||||
CreatePixmapProcPtr CreatePixmap;
|
|
||||||
DestroyPixmapProcPtr DestroyPixmap;
|
|
||||||
|
|
||||||
CreateGCProcPtr CreateGC;
|
|
||||||
#ifdef RENDER
|
|
||||||
CompositeProcPtr Composite;
|
|
||||||
GlyphsProcPtr Glyphs;
|
|
||||||
CompositeRectsProcPtr CompositeRects;
|
|
||||||
#endif
|
|
||||||
} LayerKindRec;
|
|
||||||
|
|
||||||
#define LayerWrap(orig,lay,member,func) \
|
|
||||||
(((lay)->member = (orig)->member),\
|
|
||||||
((orig)->member = (func)))
|
|
||||||
#define LayerUnwrap(orig,lay,member) \
|
|
||||||
((orig)->member = (lay)->member)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is the window private structure allocated for
|
|
||||||
* all windows. There are two possible alternatives here,
|
|
||||||
* either the window belongs to a single layer and uses its
|
|
||||||
* internal clip/borderClip lists or the window belongs to one
|
|
||||||
* or more layers and uses a separate clip/borderclip for each
|
|
||||||
* layer. When this is integrated into the core window struct,
|
|
||||||
* the LayerWinKind can become a single bit saving 8 bytes per
|
|
||||||
* window.
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct _LayerWin {
|
|
||||||
Bool isList;
|
|
||||||
union {
|
|
||||||
LayerPtr pLayer;
|
|
||||||
LayerListPtr pLayList;
|
|
||||||
} u;
|
|
||||||
} LayerWinRec;
|
|
||||||
|
|
||||||
typedef struct _LayerList {
|
|
||||||
LayerListPtr pNext; /* list of layers for this window */
|
|
||||||
LayerPtr pLayer; /* the layer */
|
|
||||||
Bool inheritClip; /* use the window clipList/borderClip */
|
|
||||||
RegionRec clipList; /* per-layer clip/border clip lists */
|
|
||||||
RegionRec borderClip;
|
|
||||||
} LayerListRec;
|
|
||||||
|
|
||||||
#define layerGetWinPriv(pWin) ((LayerWinPtr) (pWin)->devPrivates[layerWinPrivateIndex].ptr)
|
|
||||||
#define layerWinPriv(pWin) LayerWinPtr pLayWin = layerGetWinPriv(pWin)
|
|
||||||
|
|
||||||
#define layerWinLayer(pLayWin) ((pLayWin)->isList ? (pLayWin)->u.pLayList->pLayer : (pLayWin)->u.pLayer)
|
|
||||||
|
|
||||||
typedef struct _LayerWinLoop {
|
|
||||||
LayerWinPtr pLayWin;
|
|
||||||
LayerListPtr pLayList;
|
|
||||||
PixmapPtr pPixmap; /* original window pixmap */
|
|
||||||
RegionRec clipList; /* saved original clipList contents */
|
|
||||||
RegionRec borderClip; /* saved original borderClip contents */
|
|
||||||
} LayerWinLoopRec, *LayerWinLoopPtr;
|
|
||||||
|
|
||||||
#define layerWinFirstLayer(pLayWin,pLayList) ((pLayWin)->isList ? ((pLayList) = (pLayWin)->u.pLayList)->pLayer : pLayWin->u.pLayer)
|
|
||||||
#define layerWinNextLayer(pLayWin,pLayList) ((pLayWin)->isList ? ((pLayList) = (pLayList)->pNext)->pLayer : 0)
|
|
||||||
|
|
||||||
LayerPtr
|
|
||||||
LayerWindowFirst (WindowPtr pWin, LayerWinLoopPtr pLoop);
|
|
||||||
|
|
||||||
LayerPtr
|
|
||||||
LayerWindowNext (WindowPtr pWin, LayerWinLoopPtr pLoop);
|
|
||||||
|
|
||||||
void
|
|
||||||
LayerWindowDone (WindowPtr pWin, LayerWinLoopPtr pLoop);
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is the GC private structure allocated for all GCs.
|
|
||||||
* XXX this is really messed up; I'm not sure how to fix it yet
|
|
||||||
*/
|
|
||||||
|
|
||||||
typedef struct _LayerGC {
|
|
||||||
GCFuncs *funcs;
|
|
||||||
LayerKindPtr pKind;
|
|
||||||
} LayerGCRec;
|
|
||||||
|
|
||||||
#define layerGetGCPriv(pGC) ((LayerGCPtr) (pGC)->devPrivates[layerGCPrivateIndex].ptr)
|
|
||||||
#define layerGCPriv(pGC) LayerGCPtr pLayGC = layerGetGCPriv(pGC)
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is the screen private, it contains
|
|
||||||
* the layer kinds and the layers themselves
|
|
||||||
*/
|
|
||||||
typedef struct _LayerScreen {
|
|
||||||
int nkinds; /* number of elements in kinds array */
|
|
||||||
LayerKindPtr kinds; /* created kinds; reallocated when new ones added */
|
|
||||||
LayerPtr pLayers; /* list of layers for this screen */
|
|
||||||
} LayerScreenRec;
|
|
||||||
|
|
||||||
#define layerGetScrPriv(pScreen) ((LayerScreenPtr) (pScreen)->devPrivates[layerScrPrivateIndex].ptr)
|
|
||||||
#define layerScrPriv(pScreen) LayerScreenPtr pLayScr = layerGetScrPriv(pScreen)
|
|
||||||
|
|
||||||
Bool
|
|
||||||
layerCloseScreen (int index, ScreenPtr pScreen);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
layerCreateWindow (WindowPtr pWin);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
layerDestroyWindow (WindowPtr pWin);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
layerChangeWindowAttributes (WindowPtr pWin, unsigned long mask);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPaintWindowBackground (WindowPtr pWin, RegionPtr pRegion, int what);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPaintWindowBorder (WindowPtr pWin, RegionPtr pRegion, int what);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc);
|
|
||||||
|
|
||||||
PixmapPtr
|
|
||||||
layerCreatePixmap (ScreenPtr pScreen, int width, int height, int depth);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
layerDestroyPixmap (PixmapPtr pPixmap);
|
|
||||||
|
|
||||||
Bool
|
|
||||||
layerCreateGC (GCPtr pGC);
|
|
||||||
|
|
||||||
#ifdef RENDER
|
|
||||||
void
|
|
||||||
layerComposite (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
|
|
||||||
layerGlyphs (CARD8 op,
|
|
||||||
PicturePtr pSrc,
|
|
||||||
PicturePtr pDst,
|
|
||||||
PictFormatPtr maskFormat,
|
|
||||||
INT16 xSrc,
|
|
||||||
INT16 ySrc,
|
|
||||||
int nlist,
|
|
||||||
GlyphListPtr list,
|
|
||||||
GlyphPtr *glyphs);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerCompositeRects (CARD8 op,
|
|
||||||
PicturePtr pDst,
|
|
||||||
xRenderColor *color,
|
|
||||||
int nRect,
|
|
||||||
xRectangle *rects);
|
|
||||||
#endif
|
|
||||||
void layerValidateGC(GCPtr, unsigned long, DrawablePtr);
|
|
||||||
void layerChangeGC(GCPtr, unsigned long);
|
|
||||||
void layerCopyGC(GCPtr, unsigned long, GCPtr);
|
|
||||||
void layerDestroyGC(GCPtr);
|
|
||||||
void layerChangeClip(GCPtr, int, pointer, int);
|
|
||||||
void layerDestroyClip(GCPtr);
|
|
||||||
void layerCopyClip(GCPtr, GCPtr);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerFillSpans(DrawablePtr pDraw,
|
|
||||||
GC *pGC,
|
|
||||||
int nInit,
|
|
||||||
DDXPointPtr pptInit,
|
|
||||||
int *pwidthInit,
|
|
||||||
int fSorted);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerSetSpans(DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
char *pcharsrc,
|
|
||||||
DDXPointPtr pptInit,
|
|
||||||
int *pwidthInit,
|
|
||||||
int nspans,
|
|
||||||
int fSorted);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPutImage(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int depth,
|
|
||||||
int x, int y, int w, int h,
|
|
||||||
int leftPad,
|
|
||||||
int format,
|
|
||||||
char *pImage
|
|
||||||
);
|
|
||||||
|
|
||||||
RegionPtr
|
|
||||||
layerCopyArea(
|
|
||||||
DrawablePtr pSrc,
|
|
||||||
DrawablePtr pDst,
|
|
||||||
GC *pGC,
|
|
||||||
int srcx, int srcy,
|
|
||||||
int width, int height,
|
|
||||||
int dstx, int dsty
|
|
||||||
);
|
|
||||||
|
|
||||||
RegionPtr
|
|
||||||
layerCopyPlane(
|
|
||||||
DrawablePtr pSrc,
|
|
||||||
DrawablePtr pDst,
|
|
||||||
GCPtr pGC,
|
|
||||||
int srcx, int srcy,
|
|
||||||
int width, int height,
|
|
||||||
int dstx, int dsty,
|
|
||||||
unsigned long bitPlane
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPolyPoint(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int mode,
|
|
||||||
int npt,
|
|
||||||
xPoint *pptInit
|
|
||||||
);
|
|
||||||
void
|
|
||||||
layerPolylines(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int mode,
|
|
||||||
int npt,
|
|
||||||
DDXPointPtr pptInit
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPolySegment(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int nseg,
|
|
||||||
xSegment *pSeg
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPolyRectangle(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int nRects,
|
|
||||||
xRectangle *pRects
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPolyArc(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int narcs,
|
|
||||||
xArc *parcs
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerFillPolygon(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int shape,
|
|
||||||
int mode,
|
|
||||||
int count,
|
|
||||||
DDXPointPtr pptInit
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPolyFillRect(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int nRectsInit,
|
|
||||||
xRectangle *pRectsInit
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPolyFillArc(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int narcs,
|
|
||||||
xArc *parcs
|
|
||||||
);
|
|
||||||
|
|
||||||
int
|
|
||||||
layerPolyText8(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int x,
|
|
||||||
int y,
|
|
||||||
int count,
|
|
||||||
char *chars
|
|
||||||
);
|
|
||||||
|
|
||||||
int
|
|
||||||
layerPolyText16(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int x,
|
|
||||||
int y,
|
|
||||||
int count,
|
|
||||||
unsigned short *chars
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerImageText8(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int x,
|
|
||||||
int y,
|
|
||||||
int count,
|
|
||||||
char *chars
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerImageText16(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int x,
|
|
||||||
int y,
|
|
||||||
int count,
|
|
||||||
unsigned short *chars
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerImageGlyphBlt(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int x, int y,
|
|
||||||
unsigned int nglyph,
|
|
||||||
CharInfoPtr *ppci,
|
|
||||||
pointer pglyphBase
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPolyGlyphBlt(
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
GCPtr pGC,
|
|
||||||
int x, int y,
|
|
||||||
unsigned int nglyph,
|
|
||||||
CharInfoPtr *ppci,
|
|
||||||
pointer pglyphBase
|
|
||||||
);
|
|
||||||
|
|
||||||
void
|
|
||||||
layerPushPixels(
|
|
||||||
GCPtr pGC,
|
|
||||||
PixmapPtr pBitMap,
|
|
||||||
DrawablePtr pDraw,
|
|
||||||
int dx, int dy, int xOrg, int yOrg
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif /* _LAYERSTR_H_ */
|
|
Loading…
Reference in New Issue