diff options
-rw-r--r-- | vcl/coretext/ctfonts.cxx | 41 | ||||
-rw-r--r-- | vcl/coretext/ctfonts.hxx | 15 | ||||
-rw-r--r-- | vcl/coretext/ctlayout.cxx | 2 | ||||
-rw-r--r-- | vcl/coretext/salgdi2.cxx | 68 | ||||
-rw-r--r-- | vcl/inc/coretext/salgdi2.h | 29 | ||||
-rw-r--r-- | vcl/inc/headless/svpgdi.hxx | 2 |
6 files changed, 62 insertions, 95 deletions
diff --git a/vcl/coretext/ctfonts.cxx b/vcl/coretext/ctfonts.cxx index 425fb4480f14..bdfcfc6e5803 100644 --- a/vcl/coretext/ctfonts.cxx +++ b/vcl/coretext/ctfonts.cxx @@ -44,16 +44,16 @@ public: virtual ~CTFontList( void ); bool Init( void ); - void AddFont( CTFontData* ); + void AddFont( CoreTextFontData* ); virtual void AnnounceFonts( ImplDevFontList& ) const; - virtual ImplMacFontData* GetFontDataFromId( sal_IntPtr ) const; + virtual CoreTextFontData* GetFontDataFromId( sal_IntPtr ) const; private: CTFontCollectionRef mpCTFontCollection; CFArrayRef mpCTFontArray; - typedef boost::unordered_map<sal_IntPtr,CTFontData*> CTFontContainer; + typedef boost::unordered_map<sal_IntPtr,CoreTextFontData*> CTFontContainer; CTFontContainer maFontContainer; }; @@ -65,12 +65,12 @@ inline double toRadian(int nDegree) } CoreTextStyle::CoreTextStyle( const FontSelectPattern& rFSD ) -: mpFontData( (ImplMacFontData*)rFSD.mpFontData ) +: mpFontData( (CoreTextFontData*)rFSD.mpFontData ) , mfFontStretch( 1.0 ) , mfFontRotation( 0.0 ) , mpStyleDict( NULL ) { - mpFontData = (CTFontData*)rFSD.mpFontData; + mpFontData = (CoreTextFontData*)rFSD.mpFontData; const FontSelectPattern* const pReqFont = &rFSD; double fScaledFontHeight = pReqFont->mfExactHeight; @@ -249,43 +249,30 @@ void CoreTextStyle::SetTextColor( const RGBAColor& rColor ) // ======================================================================= -CTFontData::CTFontData( const ImplDevFontAttributes& rDFA, sal_IntPtr nFontId ) -: ImplMacFontData( rDFA, nFontId ) -{} - -// ----------------------------------------------------------------------- - -CTFontData::~CTFontData( void ) -{ - // TODO: any resources to release? -} - -// ----------------------------------------------------------------------- - -PhysicalFontFace* CTFontData::Clone( void ) const +PhysicalFontFace* CoreTextFontData::Clone( void ) const { - return new CTFontData( *this); + return new CoreTextFontData( *this); } // ----------------------------------------------------------------------- -CoreTextStyle* CTFontData::CreateTextStyle( const FontSelectPattern& rFSD ) const +CoreTextStyle* CoreTextFontData::CreateTextStyle( const FontSelectPattern& rFSD ) const { return new CoreTextStyle( rFSD); } // ----------------------------------------------------------------------- -ImplFontEntry* CTFontData::CreateFontInstance( /*const*/ FontSelectPattern& rFSD ) const +ImplFontEntry* CoreTextFontData::CreateFontInstance( /*const*/ FontSelectPattern& rFSD ) const { return new ImplFontEntry( rFSD); } // ----------------------------------------------------------------------- -int CTFontData::GetFontTable( const char pTagName[5], unsigned char* pResultBuf ) const +int CoreTextFontData::GetFontTable( const char pTagName[5], unsigned char* pResultBuf ) const { - DBG_ASSERT( pTagName[4]=='\0', "CTFontData::GetFontTable with invalid tagname!\n" ); + DBG_ASSERT( pTagName[4]=='\0', "CoreTextFontData::GetFontTable with invalid tagname!\n" ); const CTFontTableTag nTagCode = (pTagName[0]<<24) + (pTagName[1]<<16) + (pTagName[2]<<8) + (pTagName[3]<<0); @@ -423,7 +410,7 @@ static void CTFontEnumCallBack( const void* pValue, void* pContext ) if( bFontEnabled) { const sal_IntPtr nFontId = (sal_IntPtr)pValue; - CTFontData* pFontData = new CTFontData( rDFA, nFontId ); + CoreTextFontData* pFontData = new CoreTextFontData( rDFA, nFontId ); CTFontList* pFontList = (CTFontList*)pContext; pFontList->AddFont( pFontData ); } @@ -453,7 +440,7 @@ CTFontList::~CTFontList() // ----------------------------------------------------------------------- -void CTFontList::AddFont( CTFontData* pFontData ) +void CTFontList::AddFont( CoreTextFontData* pFontData ) { sal_IntPtr nFontId = pFontData->GetFontId(); maFontContainer[ nFontId ] = pFontData; @@ -470,7 +457,7 @@ void CTFontList::AnnounceFonts( ImplDevFontList& rFontList ) const // ----------------------------------------------------------------------- -ImplMacFontData* CTFontList::GetFontDataFromId( sal_IntPtr nFontId ) const +CoreTextFontData* CTFontList::GetFontDataFromId( sal_IntPtr nFontId ) const { CTFontContainer::const_iterator it = maFontContainer.find( nFontId ); if( it == maFontContainer.end() ) diff --git a/vcl/coretext/ctfonts.hxx b/vcl/coretext/ctfonts.hxx index 5865df518825..7a69b6afc03e 100644 --- a/vcl/coretext/ctfonts.hxx +++ b/vcl/coretext/ctfonts.hxx @@ -23,21 +23,6 @@ #endif #include "sallayout.hxx" -// CoreText specific physically available font face -class CTFontData -: public ImplMacFontData -{ -public: - explicit CTFontData( const ImplDevFontAttributes&, sal_IntPtr nFontId ); - explicit CTFontData( CTFontDescriptorRef pFontDesc ); - virtual ~CTFontData( void ); - virtual PhysicalFontFace* Clone( void ) const; - - virtual CoreTextStyle* CreateTextStyle( const FontSelectPattern& ) const; - virtual ImplFontEntry* CreateFontInstance( /*const*/ FontSelectPattern& ) const; - virtual int GetFontTable( const char pTagName[5], unsigned char* ) const; -}; - SystemFontList* GetCoretextFontList(void); ImplDevFontAttributes DevFontFromCTFontDescriptor( CTFontDescriptorRef, bool* ); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/coretext/ctlayout.cxx b/vcl/coretext/ctlayout.cxx index 1f8bdf8e1879..435c7b1b8243 100644 --- a/vcl/coretext/ctlayout.cxx +++ b/vcl/coretext/ctlayout.cxx @@ -316,7 +316,7 @@ int CTLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIDs, Point& rPos, int& if ( !CFEqual( pRunFont, pFont ) ) { CTFontDescriptorRef pFontDesc = CTFontCopyFontDescriptor( pRunFont ); ImplDevFontAttributes rDevFontAttr = DevFontFromCTFontDescriptor( pFontDesc, NULL ); - pFallbackFont = new CTFontData( rDevFontAttr, (sal_IntPtr)pFontDesc ); + pFallbackFont = new CoreTextFontData( rDevFontAttr, (sal_IntPtr)pFontDesc ); } } diff --git a/vcl/coretext/salgdi2.cxx b/vcl/coretext/salgdi2.cxx index cbd49f473d1a..c15e4aa24237 100644 --- a/vcl/coretext/salgdi2.cxx +++ b/vcl/coretext/salgdi2.cxx @@ -67,7 +67,7 @@ SystemFontList::~SystemFontList( void ) // ======================================================================= -ImplMacFontData::ImplMacFontData( const ImplMacFontData& rSrc ) +CoreTextFontData::CoreTextFontData( const CoreTextFontData& rSrc ) : PhysicalFontFace( rSrc ) , mnFontId( rSrc.mnFontId ) , mpCharMap( rSrc.mpCharMap ) @@ -81,7 +81,7 @@ ImplMacFontData::ImplMacFontData( const ImplMacFontData& rSrc ) // ----------------------------------------------------------------------- -ImplMacFontData::ImplMacFontData( const ImplDevFontAttributes& rDFA, sal_IntPtr nFontId ) +CoreTextFontData::CoreTextFontData( const ImplDevFontAttributes& rDFA, sal_IntPtr nFontId ) : PhysicalFontFace( rDFA, 0 ) , mnFontId( nFontId ) , mpCharMap( NULL ) @@ -89,11 +89,12 @@ ImplMacFontData::ImplMacFontData( const ImplDevFontAttributes& rDFA, sal_IntPtr , mbHasOs2Table( false ) , mbCmapEncodingRead( false ) , mbFontCapabilitiesRead( false ) -{} +{ +} // ----------------------------------------------------------------------- -ImplMacFontData::~ImplMacFontData() +CoreTextFontData::~CoreTextFontData() { if( mpCharMap ) mpCharMap->DeReference(); @@ -101,23 +102,16 @@ ImplMacFontData::~ImplMacFontData() // ----------------------------------------------------------------------- -sal_IntPtr ImplMacFontData::GetFontId() const +sal_IntPtr CoreTextFontData::GetFontId() const { return (sal_IntPtr)mnFontId; } // ----------------------------------------------------------------------- -ImplFontEntry* ImplMacFontData::CreateFontInstance(FontSelectPattern& rFSD) const -{ - return new ImplFontEntry(rFSD); -} - -// ----------------------------------------------------------------------- - static unsigned GetUShort( const unsigned char* p ){return((p[0]<<8)+p[1]);} -const ImplFontCharMap* ImplMacFontData::GetImplFontCharMap() const +const ImplFontCharMap* CoreTextFontData::GetImplFontCharMap() const { // return the cached charmap if( mpCharMap ) @@ -130,17 +124,17 @@ const ImplFontCharMap* ImplMacFontData::GetImplFontCharMap() const // get the CMAP byte size // allocate a buffer for the CMAP raw data const int nBufSize = GetFontTable( "cmap", NULL ); - DBG_ASSERT( (nBufSize > 0), "ImplMacFontData::GetImplFontCharMap : GetFontTable1 failed!\n"); + DBG_ASSERT( (nBufSize > 0), "CoreTextFontData::GetImplFontCharMap : GetFontTable1 failed!\n"); if( nBufSize <= 0 ) return mpCharMap; // get the CMAP raw data ByteVector aBuffer( nBufSize ); const int nRawLength = GetFontTable( "cmap", &aBuffer[0] ); - DBG_ASSERT( (nRawLength > 0), "ImplMacFontData::GetImplFontCharMap : GetFontTable2 failed!\n"); + DBG_ASSERT( (nRawLength > 0), "CoreTextFontData::GetImplFontCharMap : GetFontTable2 failed!\n"); if( nRawLength <= 0 ) return mpCharMap; - DBG_ASSERT( (nBufSize==nRawLength), "ImplMacFontData::GetImplFontCharMap : ByteCount mismatch!\n"); + DBG_ASSERT( (nBufSize==nRawLength), "CoreTextFontData::GetImplFontCharMap : ByteCount mismatch!\n"); // parse the CMAP CmapResult aCmapResult; @@ -155,7 +149,7 @@ const ImplFontCharMap* ImplMacFontData::GetImplFontCharMap() const return mpCharMap; } -bool ImplMacFontData::GetImplFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const +bool CoreTextFontData::GetImplFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const { // read this only once per font if( mbFontCapabilitiesRead ) @@ -202,7 +196,7 @@ bool ImplMacFontData::GetImplFontCapabilities(vcl::FontCapabilities &rFontCapabi // ----------------------------------------------------------------------- -void ImplMacFontData::ReadOs2Table( void ) const +void CoreTextFontData::ReadOs2Table( void ) const { // read this only once per font if( mbOs2Read ) @@ -212,24 +206,24 @@ void ImplMacFontData::ReadOs2Table( void ) const // prepare to get the OS/2 table raw data const int nBufSize = GetFontTable( "OS/2", NULL ); - DBG_ASSERT( (nBufSize > 0), "ImplMacFontData::ReadOs2Table : GetFontTable1 failed!\n"); + DBG_ASSERT( (nBufSize > 0), "CoreTextFontData::ReadOs2Table : GetFontTable1 failed!\n"); if( nBufSize <= 0 ) return; // get the OS/2 raw data ByteVector aBuffer( nBufSize ); const int nRawLength = GetFontTable( "cmap", &aBuffer[0] ); - DBG_ASSERT( (nRawLength > 0), "ImplMacFontData::ReadOs2Table : GetFontTable2 failed!\n"); + DBG_ASSERT( (nRawLength > 0), "CoreTextFontData::ReadOs2Table : GetFontTable2 failed!\n"); if( nRawLength <= 0 ) return; - DBG_ASSERT( (nBufSize==nRawLength), "ImplMacFontData::ReadOs2Table : ByteCount mismatch!\n"); + DBG_ASSERT( (nBufSize==nRawLength), "CoreTextFontData::ReadOs2Table : ByteCount mismatch!\n"); mbHasOs2Table = true; // parse the OS/2 raw data // TODO: also analyze panose info, etc. } -void ImplMacFontData::ReadMacCmapEncoding( void ) const +void CoreTextFontData::ReadMacCmapEncoding( void ) const { // read this only once per font if( mbCmapEncodingRead ) @@ -245,7 +239,7 @@ void ImplMacFontData::ReadMacCmapEncoding( void ) const const int nRawLength = GetFontTable( "cmap", &aBuffer[0] ); if( nRawLength < 24 ) return; - DBG_ASSERT( (nBufSize==nRawLength), "ImplMacFontData::ReadMacCmapEncoding : ByteCount mismatch!\n"); + DBG_ASSERT( (nBufSize==nRawLength), "CoreTextFontData::ReadMacCmapEncoding : ByteCount mismatch!\n"); const unsigned char* pCmap = &aBuffer[0]; if( GetUShort( pCmap ) != 0x0000 ) @@ -270,7 +264,7 @@ AquaSalGraphics::AquaSalGraphics() , mxClipPath( NULL ) , maLineColor( COL_WHITE ) , maFillColor( COL_BLACK ) - , mpMacFontData( NULL ) + , mpFontData( NULL ) , mpTextStyle( NULL ) , maTextColor( COL_BLACK ) , mbNonAntialiasedText( false ) @@ -280,7 +274,7 @@ AquaSalGraphics::AquaSalGraphics() #else : mrContext( NULL ) , mfFakeDPIScale( 1.0 ) - , mpMacFontData( NULL ) + , mpFontData( NULL ) , mpTextStyle( NULL ) , maTextColor( COL_BLACK ) , mbNonAntialiasedText( false ) @@ -458,20 +452,20 @@ sal_uInt16 AquaSalGraphics::SetFont( FontSelectPattern* pReqFont, int /*nFallbac // handle NULL request meaning: release-font-resources request if( !pReqFont ) { - mpMacFontData = NULL; + mpFontData = NULL; return 0; } // update the text style - mpMacFontData = static_cast<const ImplMacFontData*>( pReqFont->mpFontData ); - mpTextStyle = mpMacFontData->CreateTextStyle( *pReqFont ); + mpFontData = static_cast<const CoreTextFontData*>( pReqFont->mpFontData ); + mpTextStyle = mpFontData->CreateTextStyle( *pReqFont ); mpTextStyle->SetTextColor( maTextColor ); SAL_INFO("vcl.coretext", "SetFont" - << " to " << mpMacFontData->GetFamilyName() - << ", " << mpMacFontData->GetStyleName() - << " fontid=" << mpMacFontData->GetFontId() + << " to " << mpFontData->GetFamilyName() + << ", " << mpFontData->GetStyleName() + << " fontid=" << mpFontData->GetFontId() << " for " << pReqFont->GetFamilyName() << ", " << pReqFont->GetStyleName() << " weight=" << pReqFont->GetWeight() @@ -495,18 +489,18 @@ SalLayout* AquaSalGraphics::GetTextLayout( ImplLayoutArgs& /*rArgs*/, int /*nFal const ImplFontCharMap* AquaSalGraphics::GetImplFontCharMap() const { - if( !mpMacFontData ) + if( !mpFontData ) return ImplFontCharMap::GetDefaultMap(); - return mpMacFontData->GetImplFontCharMap(); + return mpFontData->GetImplFontCharMap(); } bool AquaSalGraphics::GetImplFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const { - if( !mpMacFontData ) + if( !mpFontData ) return false; - return mpMacFontData->GetImplFontCapabilities(rFontCapabilities); + return mpFontData->GetImplFontCapabilities(rFontCapabilities); } // ----------------------------------------------------------------------- @@ -543,7 +537,7 @@ static void FakeDirEntry( const char aTag[5], ByteCount nOfs, ByteCount nLen, bool AquaSalGraphics::GetRawFontData( const PhysicalFontFace* pFontData, ByteVector& rBuffer, bool* pJustCFF ) { - const ImplMacFontData* pMacFont = static_cast<const ImplMacFontData*>(pFontData); + const CoreTextFontData* pMacFont = static_cast<const CoreTextFontData*>(pFontData); // short circuit for CFF-only fonts const int nCffSize = pMacFont->GetFontTable( "CFF ", NULL); @@ -734,7 +728,7 @@ void AquaSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFontData, bool bV free( (void*)pGlyphMetrics ); } - const ImplFontCharMap* pMap = mpMacFontData->GetImplFontCharMap(); + const ImplFontCharMap* pMap = mpFontData->GetImplFontCharMap(); DBG_ASSERT( pMap && pMap->GetCharCount(), "no charmap" ); pMap->AddReference(); // TODO: add and use RAII object instead diff --git a/vcl/inc/coretext/salgdi2.h b/vcl/inc/coretext/salgdi2.h index 3898aeb29b9c..3186461c0c02 100644 --- a/vcl/inc/coretext/salgdi2.h +++ b/vcl/inc/coretext/salgdi2.h @@ -49,20 +49,20 @@ class CoreTextStyle; typedef sal_uInt32 sal_GlyphId; typedef std::vector<unsigned char> ByteVector; -// mac specific physically available font face -class ImplMacFontData : public PhysicalFontFace +// CoreText-specific physically available font face +class CoreTextFontData : public PhysicalFontFace { public: - ImplMacFontData( const ImplDevFontAttributes&, sal_IntPtr nFontID ); + CoreTextFontData( const ImplDevFontAttributes&, sal_IntPtr nFontID ); - virtual ~ImplMacFontData(); + ~CoreTextFontData(); - virtual PhysicalFontFace* Clone() const = 0; - virtual ImplFontEntry* CreateFontInstance( FontSelectPattern& ) const; - virtual sal_IntPtr GetFontId() const; + PhysicalFontFace* Clone() const; + ImplFontEntry* CreateFontInstance( FontSelectPattern& ) const; + sal_IntPtr GetFontId() const; - virtual CoreTextStyle* CreateTextStyle( const FontSelectPattern& ) const = 0; - virtual int GetFontTable( const char pTagName[5], unsigned char* ) const = 0; + CoreTextStyle* CreateTextStyle( const FontSelectPattern& ) const; + int GetFontTable( const char pTagName[5], unsigned char* ) const; const ImplFontCharMap* GetImplFontCharMap() const; bool GetImplFontCapabilities(vcl::FontCapabilities &rFontCapabilities) const; @@ -72,7 +72,8 @@ public: void ReadMacCmapEncoding() const; protected: - ImplMacFontData( const ImplMacFontData&); + CoreTextFontData( const CoreTextFontData&); + private: const sal_IntPtr mnFontId; mutable const ImplFontCharMap* mpCharMap; @@ -97,7 +98,7 @@ public: void SetTextColor( const RGBAColor& ); - const ImplMacFontData* mpFontData; + const CoreTextFontData* mpFontData; /// <1.0: font is squeezed, >1.0 font is stretched, else 1.0 float mfFontStretch; /// text rotation in radian @@ -121,7 +122,7 @@ public: virtual ~SystemFontList( void ); virtual void AnnounceFonts( ImplDevFontList& ) const = 0; - virtual ImplMacFontData* GetFontDataFromId( sal_IntPtr nFontId ) const = 0; + virtual CoreTextFontData* GetFontDataFromId( sal_IntPtr nFontId ) const = 0; }; #ifdef MACOSX @@ -160,8 +161,8 @@ protected: RGBAColor maFillColor; // Device Font settings - const ImplMacFontData* mpMacFontData; - CoreTextStyle* mpTextStyle; + const CoreTextFontData* mpFontData; + CoreTextStyle* mpTextStyle; RGBAColor maTextColor; /// allows text to be rendered without antialiasing bool mbNonAntialiasedText; diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx index f6281ad2710c..2853c89bf2af 100644 --- a/vcl/inc/headless/svpgdi.hxx +++ b/vcl/inc/headless/svpgdi.hxx @@ -89,7 +89,7 @@ protected: double mfFakeDPIScale; // Device Font settings - const ImplMacFontData* mpMacFontData; + const CoreTextFontData* mpFontData; CoreTextStyle* mpTextStyle; RGBAColor maTextColor; /// allows text to be rendered without antialiasing |