INTEGRATION: CWS aw033 (1.3.38); FILE MERGED

2008/06/25 13:09:36 aw 1.3.38.7: RESYNC: (1.5-1.6); FILE MERGED
2008/05/14 15:07:20 aw 1.3.38.6: RESYNC: (1.4-1.5); FILE MERGED
2007/12/13 16:44:20 aw 1.3.38.5: #i39532# AA work for unxlngi6
2007/05/23 22:17:30 aw 1.3.38.4: RESYNC: (1.3-1.4); FILE MERGED
2007/03/26 13:44:19 hdu 1.3.38.3: #i75669# use common 8bit-alpha render mask format
2007/03/23 09:23:38 hdu 1.3.38.2: #i75669# prepare use of XRenderAddTraps
2007/03/23 08:53:05 hdu 1.3.38.1: #i75669# prepare use of XRenderCompositeTrapezoids
This commit is contained in:
Vladimir Glazounov 2008-08-19 23:37:25 +00:00
parent 22b3bda078
commit 0e72d7f773

View file

@ -44,9 +44,13 @@ using namespace rtl;
XRenderPeer::XRenderPeer()
: mpDisplay( GetX11SalData()->GetDisplay()->GetDisplay() ),
mpGlyphFormat( NULL ),
mpStandardFormatA8( NULL ),
mnRenderVersion( 0 ),
mpRenderLib( NULL )
#ifndef XRENDER_LINK
, mpXRenderCompositeTrapezoids( NULL )
, mpXRenderAddTraps( NULL )
#endif // XRENDER_LINK
{
InitRenderLib();
}
@ -109,6 +113,11 @@ void XRenderPeer::InitRenderLib()
if( !pFunc ) return;
mpXRenderFindVisualFormat = (XRenderPictFormat*(*)(Display*,Visual*))pFunc;
OUString aStdFormatFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFindStandardFormat"));
pFunc = osl_getFunctionSymbol( mpRenderLib, aStdFormatFuncName.pData);
if( !pFunc ) return;
mpXRenderFindStandardFormat = (XRenderPictFormat*(*)(Display*,int))pFunc;
OUString aFmtFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFindFormat"));
pFunc = osl_getFunctionSymbol( mpRenderLib, aFmtFuncName.pData);
if( !pFunc ) return;
@ -118,7 +127,7 @@ void XRenderPeer::InitRenderLib()
OUString aCreatGlyphFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderCreateGlyphSet"));
pFunc = osl_getFunctionSymbol( mpRenderLib, aCreatGlyphFuncName.pData);
if( !pFunc ) return;
mpXRenderCreateGlyphSet = (GlyphSet(*)(Display*,XRenderPictFormat*))pFunc;
mpXRenderCreateGlyphSet = (GlyphSet(*)(Display*,const XRenderPictFormat*))pFunc;
OUString aFreeGlyphFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderFreeGlyphSet"));
pFunc = osl_getFunctionSymbol( mpRenderLib, aFreeGlyphFuncName.pData);
@ -140,12 +149,12 @@ void XRenderPeer::InitRenderLib()
pFunc = osl_getFunctionSymbol( mpRenderLib, aCompStringFuncName.pData);
if( !pFunc ) return;
mpXRenderCompositeString32 = (void(*)(Display*,int,Picture,Picture,
XRenderPictFormat*,GlyphSet,int,int,int,int,const unsigned*,int))pFunc;
const XRenderPictFormat*,GlyphSet,int,int,int,int,const unsigned*,int))pFunc;
OUString aCreatPicFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderCreatePicture"));
pFunc = osl_getFunctionSymbol( mpRenderLib, aCreatPicFuncName.pData);
if( !pFunc ) return;
mpXRenderCreatePicture = (Picture(*)(Display*,Drawable,XRenderPictFormat*,
mpXRenderCreatePicture = (Picture(*)(Display*,Drawable,const XRenderPictFormat*,
unsigned long,const XRenderPictureAttributes*))pFunc;
OUString aSetClipFuncName(RTL_CONSTASCII_USTRINGPARAM("XRenderSetPictureClipRegion"));
@ -169,7 +178,23 @@ void XRenderPeer::InitRenderLib()
if( !pFunc ) return;
mpXRenderFillRectangle = (void(*)(Display*,int,Picture,const XRenderColor*,
int,int,unsigned int,unsigned int))pFunc;
OUString aCompositeTrapsFuncName( RTL_CONSTASCII_USTRINGPARAM("XRenderCompositeTrapezoids"));
pFunc=osl_getFunctionSymbol( mpRenderLib, aCompositeTrapsFuncName.pData);
#if 0 // not having trapezoid support is supported
if( !pFunc ) return;
#endif
mpXRenderCompositeTrapezoids = (void(*)(Display*,int,Picture,Picture,
const XRenderPictFormat*,int,int,const XTrapezoid*,int))pFunc;
OUString aAddTrapsFuncName( RTL_CONSTASCII_USTRINGPARAM("XRenderAddTraps"));
pFunc=osl_getFunctionSymbol( mpRenderLib, aAddTrapsFuncName.pData);
#if 0 // not having trapezoid support is supported
if( !pFunc ) return;
#endif
mpXRenderAddTraps = (void(*)(Display*,Picture,int,int,const XTrap*,int))pFunc;
#endif // XRENDER_LINK
// needed to initialize libXrender internals, we already know its there
#ifdef XRENDER_LINK
@ -203,8 +228,8 @@ sal_uInt32 XRenderPeer::InitRenderText( int nMaxDepth )
// the 8bit alpha mask format must be there
XRenderPictFormat aPictFormat={0,0,8,{0,0,0,0,0,0,0,0xFF},0};
mpGlyphFormat = FindPictureFormat( PictFormatAlphaMask|PictFormatDepth, aPictFormat );
if( !mpGlyphFormat )
mpStandardFormatA8 = FindPictureFormat( PictFormatAlphaMask|PictFormatDepth, aPictFormat );
if( !mpStandardFormatA8 )
return 0;
// and the visual must be supported too on at least one screen