This patch exports all symbols required by the compilable (in a x86 linux computer) xorg/driver/* modules. Still missing symbols worth mentioning are: sunleo miFindMaxBand no longer available intel (uxa/uxa-accel.c) fbShmPutImage no longer available (and should have been static) mga MGAGetClientPointer (should come from matrox's libhal) This is not a definitive "visibility" patch, as all it does is to export missing symbols, but the modules that current don't compile, may require more symbols once fixed, and third party drivers should also require more symbols exported. A "definitive" patch should export symbols defined in the sdk.
185 lines
3.2 KiB
C
185 lines
3.2 KiB
C
#ifdef HAVE_XORG_CONFIG_H
|
|
#include <xorg-config.h>
|
|
#endif
|
|
|
|
#include <X11/X.h>
|
|
#include "misc.h"
|
|
#include "xf86.h"
|
|
#include "xf86_OSproc.h"
|
|
|
|
#include "scrnintstr.h"
|
|
#include "xf86str.h"
|
|
#include "xaarop.h"
|
|
#include "xaa.h"
|
|
#include "xaalocal.h"
|
|
|
|
|
|
int XAACopyROP[16] =
|
|
{
|
|
ROP_0, /* GXclear */
|
|
ROP_DSa, /* GXand */
|
|
ROP_SDna, /* GXandReverse */
|
|
ROP_S, /* GXcopy */
|
|
ROP_DSna, /* GXandInverted */
|
|
ROP_D, /* GXnoop */
|
|
ROP_DSx, /* GXxor */
|
|
ROP_DSo, /* GXor */
|
|
ROP_DSon, /* GXnor */
|
|
ROP_DSxn, /* GXequiv */
|
|
ROP_Dn, /* GXinvert*/
|
|
ROP_SDno, /* GXorReverse */
|
|
ROP_Sn, /* GXcopyInverted */
|
|
ROP_DSno, /* GXorInverted */
|
|
ROP_DSan, /* GXnand */
|
|
ROP_1 /* GXset */
|
|
};
|
|
|
|
int XAACopyROP_PM[16] =
|
|
{
|
|
ROP_0, /* not used */
|
|
ROP_DSPnoa,
|
|
ROP_DPSnaon,
|
|
ROP_DPSDxax,
|
|
ROP_DPSana,
|
|
ROP_D, /* not used */
|
|
ROP_DPSax,
|
|
ROP_DPSao,
|
|
ROP_DPSaon,
|
|
ROP_DPSaxn,
|
|
ROP_Dn, /* not used */
|
|
ROP_DPSanan,
|
|
ROP_PSDPxox, /* is that correct ? */
|
|
ROP_DPSnao,
|
|
ROP_DSPnoan,
|
|
ROP_1 /* not used */
|
|
};
|
|
|
|
|
|
int XAAPatternROP[16]=
|
|
{
|
|
ROP_0,
|
|
ROP_DPa,
|
|
ROP_PDna,
|
|
ROP_P,
|
|
ROP_DPna,
|
|
ROP_D,
|
|
ROP_DPx,
|
|
ROP_DPo,
|
|
ROP_DPon,
|
|
ROP_PDxn,
|
|
ROP_Dn,
|
|
ROP_PDno,
|
|
ROP_Pn,
|
|
ROP_DPno,
|
|
ROP_DPan,
|
|
ROP_1
|
|
};
|
|
|
|
int XAAPatternROP_PM[16] =
|
|
{
|
|
ROP_DPna,
|
|
ROP_DPSnoa,
|
|
ROP_DSPnaon,
|
|
ROP_DSPDxax,
|
|
ROP_DPSana,
|
|
ROP_D,
|
|
ROP_DPSax,
|
|
ROP_DPSao,
|
|
ROP_DPSaon,
|
|
ROP_DPSaxn,
|
|
ROP_DPx,
|
|
ROP_DPSanan,
|
|
ROP_SPDSxox, /* is that correct ? */
|
|
ROP_DSPnao,
|
|
ROP_DPSnoan,
|
|
ROP_DPo
|
|
};
|
|
|
|
_X_EXPORT int XAAGetCopyROP(int i)
|
|
{
|
|
return XAACopyROP[i];
|
|
}
|
|
|
|
_X_EXPORT int XAAGetCopyROP_PM(int i)
|
|
{
|
|
return XAACopyROP_PM[i];
|
|
}
|
|
|
|
_X_EXPORT int XAAGetPatternROP(int i)
|
|
{
|
|
return XAAPatternROP[i];
|
|
}
|
|
|
|
_X_EXPORT int XAAGetPatternROP_PM(int i)
|
|
{
|
|
return XAAPatternROP_PM[i];
|
|
}
|
|
|
|
_X_EXPORT int
|
|
XAAHelpPatternROP(ScrnInfoPtr pScrn, int *fg, int *bg, int pm, int *rop)
|
|
{
|
|
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn);
|
|
int ret = 0;
|
|
|
|
pm &= infoRec->FullPlanemasks[pScrn->depth - 1];
|
|
|
|
if(pm == infoRec->FullPlanemasks[pScrn->depth - 1]) {
|
|
if(!NO_SRC_ROP(*rop))
|
|
ret |= ROP_PAT;
|
|
*rop = XAAPatternROP[*rop];
|
|
} else {
|
|
switch(*rop) {
|
|
case GXnoop:
|
|
break;
|
|
case GXset:
|
|
case GXclear:
|
|
case GXinvert:
|
|
ret |= ROP_PAT;
|
|
*fg = pm;
|
|
if(*bg != -1)
|
|
*bg = pm;
|
|
break;
|
|
default:
|
|
ret |= ROP_PAT | ROP_SRC;
|
|
break;
|
|
}
|
|
*rop = XAAPatternROP_PM[*rop];
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|
|
|
|
_X_EXPORT int
|
|
XAAHelpSolidROP(ScrnInfoPtr pScrn, int *fg, int pm, int *rop)
|
|
{
|
|
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn);
|
|
int ret = 0;
|
|
|
|
pm &= infoRec->FullPlanemasks[pScrn->depth - 1];
|
|
|
|
if(pm == infoRec->FullPlanemasks[pScrn->depth - 1]) {
|
|
if(!NO_SRC_ROP(*rop))
|
|
ret |= ROP_PAT;
|
|
*rop = XAAPatternROP[*rop];
|
|
} else {
|
|
switch(*rop) {
|
|
case GXnoop:
|
|
break;
|
|
case GXset:
|
|
case GXclear:
|
|
case GXinvert:
|
|
ret |= ROP_PAT;
|
|
*fg = pm;
|
|
break;
|
|
default:
|
|
ret |= ROP_PAT | ROP_SRC;
|
|
break;
|
|
}
|
|
*rop = XAAPatternROP_PM[*rop];
|
|
}
|
|
|
|
return ret;
|
|
}
|
|
|