vcl: test PhysicalFontFace and move to vcl::font namespace
- moved PhysicalFontFace.hxx to vcl/inc/font - added PhysicalFontFace to vcl::font namespace - had to regenerate precompiled_vcl.hxx - tested PhysicalFontFace, with some extensive tests for IsBetterMatch() Change-Id: I860022ac244f8a827f6f9cb7ed9018c5d9c328cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121970 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
parent
0e736b0c20
commit
c817a5a495
@ -28,7 +28,7 @@
|
||||
#include <vcl/font.hxx>
|
||||
|
||||
class FontCharMap;
|
||||
class PhysicalFontFace;
|
||||
namespace vcl::font { class PhysicalFontFace; }
|
||||
|
||||
typedef tools::SvRef<FontCharMap> FontCharMapRef;
|
||||
|
||||
@ -37,7 +37,7 @@ class VCL_DLLPUBLIC FontMetric : public vcl::Font
|
||||
public:
|
||||
explicit FontMetric();
|
||||
FontMetric( const FontMetric& ); // TODO make this explicit
|
||||
FontMetric(PhysicalFontFace const& rFace);
|
||||
FontMetric(vcl::font::PhysicalFontFace const& rFace);
|
||||
~FontMetric() override;
|
||||
|
||||
tools::Long GetAscent() const { return mnAscent; }
|
||||
|
@ -24,13 +24,14 @@
|
||||
#include <basegfx/polygon/b2dpolypolygon.hxx>
|
||||
#include <tools/gen.hxx>
|
||||
#include <tools/degree.hxx>
|
||||
|
||||
#include <vcl/devicecoordinate.hxx>
|
||||
#include <vcl/glyphitem.hxx>
|
||||
#include <vcl/dllapi.h>
|
||||
|
||||
class LogicalFontInstance;
|
||||
namespace vcl::text { class ImplLayoutArgs; }
|
||||
class PhysicalFontFace;
|
||||
namespace vcl::font { class PhysicalFontFace; }
|
||||
class SalGraphics;
|
||||
class GlyphItem;
|
||||
|
||||
@ -93,7 +94,7 @@ public:
|
||||
// methods using glyph indexing
|
||||
virtual bool GetNextGlyph(const GlyphItem** pGlyph, Point& rPos, int& nStart,
|
||||
const LogicalFontInstance** ppGlyphFont = nullptr,
|
||||
const PhysicalFontFace** pFallbackFont = nullptr) const = 0;
|
||||
const vcl::font::PhysicalFontFace** pFallbackFont = nullptr) const = 0;
|
||||
virtual bool GetOutline(basegfx::B2DPolyPolygonVector&) const;
|
||||
bool GetBoundRect(tools::Rectangle&) const;
|
||||
|
||||
|
@ -14420,7 +14420,6 @@ vcl/headless/svpvd.cxx
|
||||
vcl/inc/IconThemeSelector.hxx
|
||||
vcl/inc/IPrioritable.hxx
|
||||
vcl/inc/PhysicalFontCollection.hxx
|
||||
vcl/inc/PhysicalFontFace.hxx
|
||||
vcl/inc/PhysicalFontFamily.hxx
|
||||
vcl/inc/ResampleKernel.hxx
|
||||
vcl/inc/WidgetThemeLibraryTypes.hxx
|
||||
@ -14440,6 +14439,7 @@ vcl/inc/dndlistenercontainer.hxx
|
||||
vcl/inc/factory.hxx
|
||||
vcl/inc/fltcall.hxx
|
||||
vcl/inc/font/FontSelectPattern.hxx
|
||||
vcl/inc/font/PhysicalFontFace.hxx
|
||||
vcl/inc/fontattributes.hxx
|
||||
vcl/inc/fontinstance.hxx
|
||||
vcl/inc/fontsubset.hxx
|
||||
@ -14940,6 +14940,7 @@ vcl/source/filter/wmf/emfwr.hxx
|
||||
vcl/source/filter/wmf/wmf.cxx
|
||||
vcl/source/filter/wmf/wmfwr.cxx
|
||||
vcl/source/filter/wmf/wmfwr.hxx
|
||||
vcl/source/font/FontSelectPattern.cxx
|
||||
vcl/source/font/PhysicalFontCollection.cxx
|
||||
vcl/source/font/PhysicalFontFace.cxx
|
||||
vcl/source/font/PhysicalFontFamily.cxx
|
||||
@ -14949,7 +14950,6 @@ vcl/source/font/fontcache.cxx
|
||||
vcl/source/font/fontcharmap.cxx
|
||||
vcl/source/font/fontinstance.cxx
|
||||
vcl/source/font/fontmetric.cxx
|
||||
vcl/source/font/fontselect.cxx
|
||||
vcl/source/fontsubset/cff.cxx
|
||||
vcl/source/fontsubset/fontsubset.cxx
|
||||
vcl/source/fontsubset/list.cxx
|
||||
|
@ -16,6 +16,7 @@ $(eval $(call gb_CppunitTest_set_include,vcl_font,\
|
||||
|
||||
$(eval $(call gb_CppunitTest_add_exception_objects,vcl_font, \
|
||||
vcl/qa/cppunit/font \
|
||||
vcl/qa/cppunit/physicalfontface \
|
||||
vcl/qa/cppunit/physicalfontfacecollection \
|
||||
vcl/qa/cppunit/physicalfontfamily \
|
||||
))
|
||||
|
@ -473,12 +473,12 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
|
||||
vcl/source/font/Feature \
|
||||
vcl/source/font/FeatureCollector \
|
||||
vcl/source/font/FeatureParser \
|
||||
vcl/source/font/FontSelectPattern \
|
||||
vcl/source/font/OpenTypeFeatureDefinitionList \
|
||||
vcl/source/font/PhysicalFontCollection \
|
||||
vcl/source/font/PhysicalFontFace \
|
||||
vcl/source/font/PhysicalFontFamily \
|
||||
vcl/source/font/fontattributes \
|
||||
vcl/source/font/fontselect \
|
||||
vcl/source/font/fontinstance \
|
||||
vcl/source/font/fontcache \
|
||||
vcl/source/font/fontcharmap \
|
||||
|
@ -65,7 +65,7 @@ bool SvpSalGraphics::AddTempDevFont( PhysicalFontCollection* pFontCollection,
|
||||
|
||||
bool SvpSalGraphics::CreateFontSubset(
|
||||
const OUString& rToFile,
|
||||
const PhysicalFontFace* pFont,
|
||||
const vcl::font::PhysicalFontFace* pFont,
|
||||
const sal_GlyphId* pGlyphIds,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
@ -75,7 +75,7 @@ bool SvpSalGraphics::CreateFontSubset(
|
||||
return m_aTextRenderImpl.CreateFontSubset(rToFile, pFont, pGlyphIds, pEncoding, pWidths, nGlyphCount, rInfo);
|
||||
}
|
||||
|
||||
const void* SvpSalGraphics::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
const void* SvpSalGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
{
|
||||
return m_aTextRenderImpl.GetEmbedFontData(pFont, pDataLen);
|
||||
}
|
||||
@ -85,7 +85,7 @@ void SvpSalGraphics::FreeEmbedFontData( const void* pData, tools::Long nLen )
|
||||
m_aTextRenderImpl.FreeEmbedFontData(pData, nLen);
|
||||
}
|
||||
|
||||
void SvpSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
|
||||
void SvpSalGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc )
|
||||
|
@ -43,7 +43,7 @@ public:
|
||||
~PhysicalFontCollection();
|
||||
|
||||
// fill the list with device font faces
|
||||
void Add( PhysicalFontFace* );
|
||||
void Add( vcl::font::PhysicalFontFace* );
|
||||
void Clear();
|
||||
int Count() const { return maPhysicalFontFamilies.size(); }
|
||||
|
||||
|
@ -36,6 +36,7 @@ class Size;
|
||||
|
||||
namespace vcl::font
|
||||
{
|
||||
class PhysicalFontFace;
|
||||
|
||||
class VCL_DLLPUBLIC FontSelectPattern : public FontAttributes
|
||||
{
|
||||
|
@ -28,7 +28,7 @@
|
||||
#include <vcl/dllapi.h>
|
||||
#include <vcl/fontcharmap.hxx>
|
||||
|
||||
#include "fontattributes.hxx"
|
||||
#include <fontattributes.hxx>
|
||||
|
||||
class LogicalFontInstance;
|
||||
struct FontMatchStatus;
|
||||
@ -44,6 +44,10 @@ struct FontCapabilities;
|
||||
class PhysicalFontFamily;
|
||||
}
|
||||
|
||||
namespace vcl::font
|
||||
{
|
||||
class FontSelectPattern;
|
||||
|
||||
struct FontMatchStatus
|
||||
{
|
||||
public:
|
||||
@ -53,7 +57,6 @@ public:
|
||||
const OUString* mpTargetStyleName;
|
||||
};
|
||||
|
||||
|
||||
// TODO: no more direct access to members
|
||||
// TODO: get rid of height/width for scalable fonts
|
||||
// TODO: make cloning cheaper
|
||||
@ -80,6 +83,8 @@ protected:
|
||||
explicit PhysicalFontFace(const FontAttributes&);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // INCLUDED_VCL_INC_PHYSICALFONTFACE_HXX
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
@ -23,7 +23,7 @@
|
||||
|
||||
#include <vcl/dllapi.h>
|
||||
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include "PhysicalFontFace.hxx"
|
||||
|
||||
#include <vector>
|
||||
|
||||
|
@ -28,9 +28,6 @@
|
||||
|
||||
#include <unotools/fontcfg.hxx>
|
||||
|
||||
#include <PhysicalFontFace.hxx>
|
||||
|
||||
class PhysicalFontFace;
|
||||
class PhysicalFontCollection;
|
||||
|
||||
namespace vcl::font
|
||||
@ -59,6 +56,8 @@ struct typed_flags<vcl::font::FontTypeFaces> : is_typed_flags<vcl::font::FontTyp
|
||||
|
||||
namespace vcl::font
|
||||
{
|
||||
class FontSelectPattern;
|
||||
class PhysicalFontFace;
|
||||
class PhysicalFontFaceCollection;
|
||||
|
||||
class VCL_PLUGIN_PUBLIC PhysicalFontFamily
|
||||
|
@ -48,7 +48,7 @@ class VCL_PLUGIN_PUBLIC LogicalFontInstance : public salhelper::SimpleReferenceO
|
||||
{
|
||||
// just declaring the factory function doesn't work AKA
|
||||
// friend LogicalFontInstance* PhysicalFontFace::CreateFontInstance(const FontSelectPattern&) const;
|
||||
friend class PhysicalFontFace;
|
||||
friend class vcl::font::PhysicalFontFace;
|
||||
friend class ImplFontCache;
|
||||
|
||||
public: // TODO: make data members private
|
||||
@ -72,8 +72,8 @@ public: // TODO: make data members private
|
||||
double GetAverageWidthFactor() const { return m_nAveWidthFactor; }
|
||||
const vcl::font::FontSelectPattern& GetFontSelectPattern() const { return m_aFontSelData; }
|
||||
|
||||
const PhysicalFontFace* GetFontFace() const { return m_pFontFace.get(); }
|
||||
PhysicalFontFace* GetFontFace() { return m_pFontFace.get(); }
|
||||
const vcl::font::PhysicalFontFace* GetFontFace() const { return m_pFontFace.get(); }
|
||||
vcl::font::PhysicalFontFace* GetFontFace() { return m_pFontFace.get(); }
|
||||
const ImplFontCache* GetFontCache() const { return mpFontCache; }
|
||||
|
||||
bool GetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const;
|
||||
@ -85,7 +85,7 @@ public: // TODO: make data members private
|
||||
static inline void DecodeOpenTypeTag(const uint32_t nTableTag, char* pTagName);
|
||||
|
||||
protected:
|
||||
explicit LogicalFontInstance(const PhysicalFontFace&, const vcl::font::FontSelectPattern&);
|
||||
explicit LogicalFontInstance(const vcl::font::PhysicalFontFace&, const vcl::font::FontSelectPattern&);
|
||||
|
||||
virtual bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const = 0;
|
||||
|
||||
@ -103,7 +103,7 @@ private:
|
||||
const vcl::font::FontSelectPattern m_aFontSelData;
|
||||
hb_font_t* m_pHbFont;
|
||||
double m_nAveWidthFactor;
|
||||
rtl::Reference<PhysicalFontFace> m_pFontFace;
|
||||
rtl::Reference<vcl::font::PhysicalFontFace> m_pFontFace;
|
||||
std::optional<bool> m_xbIsGraphiteFont;
|
||||
};
|
||||
|
||||
|
@ -31,6 +31,7 @@
|
||||
#include <vcl/sysdata.hxx>
|
||||
#include <config_cairo_canvas.h>
|
||||
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <salgdi.hxx>
|
||||
#include <sallayout.hxx>
|
||||
#include "svpcairotextrender.hxx"
|
||||
@ -183,16 +184,16 @@ public:
|
||||
virtual void ClearDevFontCache() override;
|
||||
virtual bool AddTempDevFont( PhysicalFontCollection*, const OUString& rFileURL, const OUString& rFontName ) override;
|
||||
virtual bool CreateFontSubset( const OUString& rToFile,
|
||||
const PhysicalFontFace*,
|
||||
const vcl::font::PhysicalFontFace*,
|
||||
const sal_GlyphId* pGlyphIds,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
int nGlyphs,
|
||||
FontSubsetInfo& rInfo
|
||||
) override;
|
||||
virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
|
||||
virtual void GetGlyphWidths( const PhysicalFontFace*,
|
||||
virtual void GetGlyphWidths( const vcl::font::PhysicalFontFace*,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc ) override;
|
||||
|
@ -25,8 +25,8 @@
|
||||
#include <tools/gen.hxx>
|
||||
#include <vcl/vclptr.hxx>
|
||||
|
||||
#include "font/PhysicalFontFace.hxx"
|
||||
#include "fontinstance.hxx"
|
||||
#include "PhysicalFontFace.hxx"
|
||||
#include "impfontcache.hxx"
|
||||
|
||||
class Size;
|
||||
|
@ -13,7 +13,7 @@
|
||||
manual changes will be rewritten by the next run of update_pch.sh (which presumably
|
||||
also fixes all possible problems, so it's usually better to use it).
|
||||
|
||||
Generated on 2021-08-04 20:14:15 using:
|
||||
Generated on 2021-09-21 16:33:04 using:
|
||||
./bin/update_pch vcl vcl --cutoff=6 --exclude:system --include:module --include:local
|
||||
|
||||
If after updating build fails, use the following command to locate conflicting headers:
|
||||
@ -33,9 +33,11 @@
|
||||
#include <deque>
|
||||
#include <float.h>
|
||||
#include <functional>
|
||||
#include <hb.h>
|
||||
#include <initializer_list>
|
||||
#include <iomanip>
|
||||
#include <limits>
|
||||
#include <list>
|
||||
#include <map>
|
||||
#include <math.h>
|
||||
#include <memory>
|
||||
@ -52,7 +54,6 @@
|
||||
#include <unordered_map>
|
||||
#include <utility>
|
||||
#include <vector>
|
||||
#include <boost/functional/hash.hpp>
|
||||
#include <boost/math/special_functions/sinc.hpp>
|
||||
#include <boost/multi_array.hpp>
|
||||
#include <boost/property_tree/json_parser.hpp>
|
||||
@ -80,6 +81,7 @@
|
||||
#include <rtl/bootstrap.hxx>
|
||||
#include <rtl/byteseq.hxx>
|
||||
#include <rtl/character.hxx>
|
||||
#include <rtl/cipher.h>
|
||||
#include <rtl/crc.h>
|
||||
#include <rtl/digest.h>
|
||||
#include <rtl/instance.hxx>
|
||||
@ -129,8 +131,6 @@
|
||||
#include <basegfx/vector/b2enums.hxx>
|
||||
#include <basegfx/vector/b2ivector.hxx>
|
||||
#include <bitmap/BitmapWriteAccess.hxx>
|
||||
#include <com/sun/star/awt/Key.hpp>
|
||||
#include <com/sun/star/awt/KeyGroup.hpp>
|
||||
#include <com/sun/star/beans/PropertyValue.hpp>
|
||||
#include <com/sun/star/datatransfer/DataFlavor.hpp>
|
||||
#include <com/sun/star/datatransfer/XTransferable2.hpp>
|
||||
@ -146,8 +146,13 @@
|
||||
#include <com/sun/star/embed/Aspects.hpp>
|
||||
#include <com/sun/star/frame/XTerminateListener.hpp>
|
||||
#include <com/sun/star/i18n/Calendar2.hpp>
|
||||
#include <com/sun/star/i18n/DirectionProperty.hpp>
|
||||
#include <com/sun/star/i18n/KCharacterType.hpp>
|
||||
#include <com/sun/star/i18n/NativeNumberXmlAttributes.hpp>
|
||||
#include <com/sun/star/i18n/ParseResult.hpp>
|
||||
#include <com/sun/star/i18n/TransliterationModules.hpp>
|
||||
#include <com/sun/star/i18n/TransliterationModulesExtra.hpp>
|
||||
#include <com/sun/star/i18n/UnicodeScript.hpp>
|
||||
#include <com/sun/star/lang/DisposedException.hpp>
|
||||
#include <com/sun/star/lang/EventObject.hpp>
|
||||
#include <com/sun/star/lang/Locale.hpp>
|
||||
@ -190,10 +195,14 @@
|
||||
#include <cppuhelper/weak.hxx>
|
||||
#include <cppuhelper/weakagg.hxx>
|
||||
#include <cppuhelper/weakref.hxx>
|
||||
#include <font/FontSelectPattern.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFaceCollection.hxx>
|
||||
#include <i18nlangtag/lang.h>
|
||||
#include <i18nlangtag/languagetag.hxx>
|
||||
#include <i18nlangtag/mslangid.hxx>
|
||||
#include <i18nutil/i18nutildllapi.h>
|
||||
#include <i18nutil/transliteration.hxx>
|
||||
#include <o3tl/cow_wrapper.hxx>
|
||||
#include <o3tl/safeint.hxx>
|
||||
#include <o3tl/sorted_vector.hxx>
|
||||
@ -246,18 +255,20 @@
|
||||
#include <uno/any2.h>
|
||||
#include <uno/data.h>
|
||||
#include <uno/sequence2.h>
|
||||
#include <unotools/calendarwrapper.hxx>
|
||||
#include <unotools/configmgr.hxx>
|
||||
#include <unotools/localedatawrapper.hxx>
|
||||
#include <unotools/resmgr.hxx>
|
||||
#include <unotools/syslocale.hxx>
|
||||
#include <unotools/ucbstreamhelper.hxx>
|
||||
#include <unotools/unotoolsdllapi.h>
|
||||
#endif // PCH_LEVEL >= 3
|
||||
#if PCH_LEVEL >= 4
|
||||
#include <PhysicalFontCollection.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <accel.hxx>
|
||||
#include <brdwin.hxx>
|
||||
#include <configsettings.hxx>
|
||||
#include <drawmode.hxx>
|
||||
#include <fontattributes.hxx>
|
||||
#include <impglyphitem.hxx>
|
||||
#include <outdev.h>
|
||||
@ -303,6 +314,8 @@
|
||||
#include <vcl/dllapi.h>
|
||||
#include <vcl/dockwin.hxx>
|
||||
#include <vcl/event.hxx>
|
||||
#include <vcl/filter/SvmReader.hxx>
|
||||
#include <vcl/filter/SvmWriter.hxx>
|
||||
#include <vcl/fntstyle.hxx>
|
||||
#include <vcl/font.hxx>
|
||||
#include <vcl/formatter.hxx>
|
||||
@ -354,6 +367,7 @@
|
||||
#include <vcl/unohelp.hxx>
|
||||
#include <vcl/vclenum.hxx>
|
||||
#include <vcl/vclevent.hxx>
|
||||
#include <vcl/vcllayout.hxx>
|
||||
#include <vcl/vclptr.hxx>
|
||||
#include <vcl/virdev.hxx>
|
||||
#include <vcl/weld.hxx>
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
#include <sal/config.h>
|
||||
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <fontinstance.hxx>
|
||||
|
||||
namespace vcl::pdf
|
||||
@ -52,12 +52,12 @@ class BuildinFontInstance final : public LogicalFontInstance
|
||||
bool ImplGetGlyphBoundRect(sal_GlyphId nID, tools::Rectangle& rRect, bool) const override;
|
||||
|
||||
public:
|
||||
BuildinFontInstance(const PhysicalFontFace&, const vcl::font::FontSelectPattern&);
|
||||
BuildinFontInstance(const vcl::font::PhysicalFontFace&, const vcl::font::FontSelectPattern&);
|
||||
|
||||
bool GetGlyphOutline(sal_GlyphId nId, basegfx::B2DPolyPolygon& rPoly, bool) const override;
|
||||
};
|
||||
|
||||
class BuildinFontFace final : public PhysicalFontFace
|
||||
class BuildinFontFace final : public vcl::font::PhysicalFontFace
|
||||
{
|
||||
static const BuildinFont m_aBuildinFonts[14];
|
||||
const BuildinFont& mrBuildin;
|
||||
|
@ -37,7 +37,7 @@ namespace vcl
|
||||
bool m_bVertical;
|
||||
std::type_info* m_typeFontFace;
|
||||
|
||||
FontIdentifier( const PhysicalFontFace*, bool bVertical );
|
||||
FontIdentifier( const vcl::font::PhysicalFontFace*, bool bVertical );
|
||||
|
||||
// Less than needed for std::set and std::map
|
||||
bool operator<( const FontIdentifier& rRight ) const
|
||||
@ -60,11 +60,11 @@ namespace vcl
|
||||
std::vector< FontData > m_aFonts;
|
||||
FontToIndexMap m_aFontToIndex;
|
||||
|
||||
FontData& getFont( const PhysicalFontFace*, bool bVertical );
|
||||
FontData& getFont( const vcl::font::PhysicalFontFace*, bool bVertical );
|
||||
public:
|
||||
PDFFontCache() {}
|
||||
|
||||
sal_Int32 getGlyphWidth( const PhysicalFontFace*, sal_GlyphId, bool bVertical, SalGraphics* );
|
||||
sal_Int32 getGlyphWidth( const vcl::font::PhysicalFontFace*, sal_GlyphId, bool bVertical, SalGraphics* );
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ class FontSubsetInfo;
|
||||
class ZCodec;
|
||||
class EncHashTransporter;
|
||||
struct BitStreamState;
|
||||
class PhysicalFontFace;
|
||||
namespace vcl::font { class PhysicalFontFace; }
|
||||
class SvStream;
|
||||
class SvMemoryStream;
|
||||
|
||||
@ -721,8 +721,8 @@ private:
|
||||
std::vector< TilingEmit > m_aTilings;
|
||||
std::vector< TransparencyEmit > m_aTransparentObjects;
|
||||
/* contains all font subsets in use */
|
||||
std::map<const PhysicalFontFace*, FontSubset> m_aSubsets;
|
||||
std::map<const PhysicalFontFace*, EmbedFont> m_aSystemFonts;
|
||||
std::map<const vcl::font::PhysicalFontFace*, FontSubset> m_aSubsets;
|
||||
std::map<const vcl::font::PhysicalFontFace*, EmbedFont> m_aSystemFonts;
|
||||
sal_Int32 m_nNextFID;
|
||||
PDFFontCache m_aFontCache;
|
||||
|
||||
@ -807,7 +807,7 @@ i12626
|
||||
void appendLiteralStringEncrypt( std::string_view rInString, const sal_Int32 nInObjectNumber, OStringBuffer& rOutBuffer );
|
||||
|
||||
/* creates fonts and subsets that will be emitted later */
|
||||
void registerGlyph(const GlyphItem* pGlyph, const PhysicalFontFace* pFont, const std::vector<sal_Ucs>& rCodeUnits, sal_uInt8& nMappedGlyph, sal_Int32& nMappedFontObject);
|
||||
void registerGlyph(const GlyphItem* pGlyph, const vcl::font::PhysicalFontFace* pFont, const std::vector<sal_Ucs>& rCodeUnits, sal_uInt8& nMappedGlyph, sal_Int32& nMappedFontObject);
|
||||
|
||||
/* emits a text object according to the passed layout */
|
||||
/* TODO: remove rText as soon as SalLayout will change so that rText is not necessary anymore */
|
||||
@ -852,9 +852,9 @@ i12626
|
||||
/* writes a builtin font object and returns its objectid (or 0 in case of failure ) */
|
||||
sal_Int32 emitBuildinFont( const pdf::BuildinFontFace*, sal_Int32 nObject );
|
||||
/* writes a type1 system font object and returns its mapping from font ids to object ids (or 0 in case of failure ) */
|
||||
std::map< sal_Int32, sal_Int32 > emitSystemFont( const PhysicalFontFace*, EmbedFont const & );
|
||||
std::map< sal_Int32, sal_Int32 > emitSystemFont(const vcl::font::PhysicalFontFace*, EmbedFont const &);
|
||||
/* writes a font descriptor and returns its object id (or 0) */
|
||||
sal_Int32 emitFontDescriptor( const PhysicalFontFace*, FontSubsetInfo const &, sal_Int32 nSubsetID, sal_Int32 nStream );
|
||||
sal_Int32 emitFontDescriptor(const vcl::font::PhysicalFontFace*, FontSubsetInfo const &, sal_Int32 nSubsetID, sal_Int32 nStream);
|
||||
/* writes a ToUnicode cmap, returns the corresponding stream object */
|
||||
sal_Int32 createToUnicodeCMap( sal_uInt8 const * pEncoding, const sal_Ucs* pCodeUnits, const sal_Int32* pCodeUnitsPerGlyph,
|
||||
const sal_Int32* pEncToUnicodeIndex, int nGlyphs );
|
||||
|
@ -37,7 +37,7 @@ class QtFont final : public QFont, public LogicalFontInstance
|
||||
|
||||
virtual hb_font_t* ImplInitHbFont() override;
|
||||
|
||||
explicit QtFont(const PhysicalFontFace&, const vcl::font::FontSelectPattern&);
|
||||
explicit QtFont(const vcl::font::PhysicalFontFace&, const vcl::font::FontSelectPattern&);
|
||||
};
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <sal/config.h>
|
||||
|
||||
#include <vclpluginapi.h>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
|
||||
#include <tools/ref.hxx>
|
||||
#include <vcl/fontcapabilities.hxx>
|
||||
@ -37,7 +37,7 @@ namespace vcl::font
|
||||
class FontSelectPattern;
|
||||
}
|
||||
|
||||
class QtFontFace final : public PhysicalFontFace
|
||||
class QtFontFace final : public vcl::font::PhysicalFontFace
|
||||
{
|
||||
public:
|
||||
static QtFontFace* fromQFont(const QFont& rFont);
|
||||
|
@ -228,16 +228,17 @@ public:
|
||||
virtual void ClearDevFontCache() override;
|
||||
virtual bool AddTempDevFont(PhysicalFontCollection*, const OUString& rFileURL,
|
||||
const OUString& rFontName) override;
|
||||
virtual bool CreateFontSubset(const OUString& rToFile, const PhysicalFontFace* pFont,
|
||||
virtual bool CreateFontSubset(const OUString& rToFile, const vcl::font::PhysicalFontFace* pFont,
|
||||
const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths, int nGlyphs,
|
||||
FontSubsetInfo& rInfo // out parameter
|
||||
) override;
|
||||
|
||||
virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*,
|
||||
tools::Long* pDataLen) override;
|
||||
virtual void FreeEmbedFontData(const void* pData, tools::Long nDataLen) override;
|
||||
|
||||
virtual void GetGlyphWidths(const PhysicalFontFace*, bool bVertical,
|
||||
virtual void GetGlyphWidths(const vcl::font::PhysicalFontFace*, bool bVertical,
|
||||
std::vector<sal_Int32>& rWidths, Ucs2UIntMap& rUnicodeEnc) override;
|
||||
|
||||
virtual std::unique_ptr<GenericSalLayout> GetTextLayout(int nFallbackLevel) override;
|
||||
|
@ -44,7 +44,7 @@
|
||||
|
||||
#include <fontinstance.hxx>
|
||||
#include <impfontmetricdata.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <salgdi.hxx>
|
||||
|
||||
#include <quartz/salgdicommon.hxx>
|
||||
@ -58,7 +58,7 @@ class FontAttributes;
|
||||
class XorEmulation;
|
||||
|
||||
// CoreText-specific physically available font face
|
||||
class CoreTextFontFace : public PhysicalFontFace
|
||||
class CoreTextFontFace : public vcl::font::PhysicalFontFace
|
||||
{
|
||||
public:
|
||||
CoreTextFontFace( const FontAttributes&, sal_IntPtr nFontID );
|
||||
@ -102,7 +102,7 @@ public:
|
||||
bool mbFauxBold;
|
||||
|
||||
private:
|
||||
explicit CoreTextStyle(const PhysicalFontFace&, const vcl::font::FontSelectPattern&);
|
||||
explicit CoreTextStyle(const vcl::font::PhysicalFontFace&, const vcl::font::FontSelectPattern&);
|
||||
|
||||
hb_font_t* ImplInitHbFont() override;
|
||||
bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override;
|
||||
@ -552,7 +552,7 @@ public:
|
||||
// implementation note: encoding 0 with glyph id 0 should be added implicitly
|
||||
// as "undefined character"
|
||||
virtual bool CreateFontSubset( const OUString& rToFile,
|
||||
const PhysicalFontFace* pFont,
|
||||
const vcl::font::PhysicalFontFace* pFont,
|
||||
const sal_GlyphId* pGlyphIds,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
@ -564,12 +564,12 @@ public:
|
||||
// embeddable by GetDevFontList or NULL in case of error
|
||||
// parameters: pFont: describes the font in question
|
||||
// pDataLen: out parameter, contains the byte length of the returned buffer
|
||||
virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen)
|
||||
virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen)
|
||||
override;
|
||||
// frees the font data again
|
||||
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
|
||||
|
||||
virtual void GetGlyphWidths( const PhysicalFontFace*,
|
||||
virtual void GetGlyphWidths( const vcl::font::PhysicalFontFace*,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc ) override;
|
||||
@ -582,7 +582,7 @@ public:
|
||||
GetGraphicsData() const override;
|
||||
|
||||
private:
|
||||
static bool GetRawFontData( const PhysicalFontFace* pFontData,
|
||||
static bool GetRawFontData( const vcl::font::PhysicalFontFace* pFontData,
|
||||
std::vector<unsigned char>& rBuffer,
|
||||
bool* pJustCFF );
|
||||
};
|
||||
|
@ -38,7 +38,10 @@
|
||||
class PhysicalFontCollection;
|
||||
class SalBitmap;
|
||||
class FontAttributes;
|
||||
class PhysicalFontFace;
|
||||
namespace vcl::font {
|
||||
class FontSelectPattern;
|
||||
class PhysicalFontFace;
|
||||
}
|
||||
class SalLayout;
|
||||
namespace tools { class Rectangle; }
|
||||
class FontSubsetInfo;
|
||||
@ -173,7 +176,7 @@ public:
|
||||
// as "undefined character"
|
||||
virtual bool CreateFontSubset(
|
||||
const OUString& rToFile,
|
||||
const PhysicalFontFace* pFont,
|
||||
const vcl::font::PhysicalFontFace* pFont,
|
||||
const sal_GlyphId* pGlyphIDs,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
@ -184,7 +187,7 @@ public:
|
||||
// embeddable by GetDevFontList or NULL in case of error
|
||||
// parameters: pFont: describes the font in question
|
||||
// pDataLen: out parameter, contains the byte length of the returned buffer
|
||||
virtual const void* GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen) = 0;
|
||||
virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen) = 0;
|
||||
|
||||
// free the font data again
|
||||
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) = 0;
|
||||
@ -194,7 +197,7 @@ public:
|
||||
// between unicode and glyph id
|
||||
// leave widths vector and mapping untouched in case of failure
|
||||
virtual void GetGlyphWidths(
|
||||
const PhysicalFontFace* pFont,
|
||||
const vcl::font::PhysicalFontFace* pFont,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc ) = 0;
|
||||
@ -648,7 +651,7 @@ protected:
|
||||
vcl::WidgetDrawInterface* forWidget() { return m_pWidgetDraw ? m_pWidgetDraw.get() : this; }
|
||||
|
||||
static void GetGlyphWidths(const vcl::AbstractTrueTypeFont& rTTF,
|
||||
const PhysicalFontFace& rFontFace, bool bVertical,
|
||||
const vcl::font::PhysicalFontFace& rFontFace, bool bVertical,
|
||||
std::vector<sal_Int32>& rWidths, Ucs2UIntMap& rUnicodeEnc);
|
||||
|
||||
static bool CreateTTFfontSubset(vcl::AbstractTrueTypeFont& aTTF, const OString& rSysPath,
|
||||
|
@ -45,10 +45,14 @@
|
||||
|
||||
#define MAX_FALLBACK 16
|
||||
|
||||
class PhysicalFontFace;
|
||||
class GenericSalLayout;
|
||||
class SalGraphics;
|
||||
enum class SalLayoutFlags;
|
||||
|
||||
namespace vcl::font {
|
||||
class PhysicalFontFace;
|
||||
}
|
||||
|
||||
namespace vcl::text {
|
||||
class TextLayoutCache;
|
||||
}
|
||||
@ -62,7 +66,7 @@ public:
|
||||
void GetCaretPositions(int nArraySize, tools::Long* pCaretXArray) const override;
|
||||
bool GetNextGlyph(const GlyphItem** pGlyph, Point& rPos, int& nStart,
|
||||
const LogicalFontInstance** ppGlyphFont = nullptr,
|
||||
const PhysicalFontFace** pFallbackFont = nullptr) const override;
|
||||
const vcl::font::PhysicalFontFace** pFallbackFont = nullptr) const override;
|
||||
bool GetOutline(basegfx::B2DPolyPolygonVector&) const override;
|
||||
bool IsKashidaPosValid(int nCharPos) const override;
|
||||
SalLayoutGlyphs GetGlyphs() const final override;
|
||||
@ -119,7 +123,7 @@ public:
|
||||
|
||||
bool GetNextGlyph(const GlyphItem** pGlyph, Point& rPos, int& nStart,
|
||||
const LogicalFontInstance** ppGlyphFont = nullptr,
|
||||
const PhysicalFontFace** pFallbackFont = nullptr) const override;
|
||||
const vcl::font::PhysicalFontFace** pFallbackFont = nullptr) const override;
|
||||
|
||||
const SalLayoutGlyphsImpl& GlyphsImpl() const { return m_GlyphItems; }
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
||||
|
||||
class ImplFontMetricData;
|
||||
class PhysicalFontCollection;
|
||||
class PhysicalFontFace;
|
||||
namespace vcl::font { class PhysicalFontFace; }
|
||||
|
||||
class TextRenderImpl
|
||||
{
|
||||
@ -45,17 +45,17 @@ public:
|
||||
virtual bool AddTempDevFont( PhysicalFontCollection*, const OUString& rFileURL, const OUString& rFontName ) = 0;
|
||||
virtual bool CreateFontSubset(
|
||||
const OUString& rToFile,
|
||||
const PhysicalFontFace*,
|
||||
const vcl::font::PhysicalFontFace*,
|
||||
const sal_GlyphId* pGlyphIDs,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
int nGlyphs,
|
||||
FontSubsetInfo& rInfo) = 0;
|
||||
|
||||
virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) = 0;
|
||||
virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) = 0;
|
||||
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) = 0;
|
||||
virtual void GetGlyphWidths(
|
||||
const PhysicalFontFace*,
|
||||
const vcl::font::PhysicalFontFace*,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc ) = 0;
|
||||
|
@ -22,6 +22,8 @@
|
||||
|
||||
#include <unx/freetypetextrender.hxx>
|
||||
|
||||
class GenericSalLayout;
|
||||
class SalGraphics;
|
||||
typedef struct _cairo cairo_t;
|
||||
|
||||
class VCL_DLLPUBLIC CairoTextRender : public FreeTypeTextRenderImpl
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <sal/config.h>
|
||||
|
||||
#include <unx/glyphcache.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <fontinstance.hxx>
|
||||
#include <vcl/glyphitem.hxx>
|
||||
|
||||
@ -92,7 +92,7 @@ private:
|
||||
mutable FontCharMapRef mxFontCharMap;
|
||||
};
|
||||
|
||||
class FreetypeFontFace : public PhysicalFontFace
|
||||
class FreetypeFontFace : public vcl::font::PhysicalFontFace
|
||||
{
|
||||
private:
|
||||
FreetypeFontInfo* mpFreetypeFontInfo;
|
||||
@ -100,7 +100,7 @@ private:
|
||||
public:
|
||||
FreetypeFontFace( FreetypeFontInfo*, const FontAttributes& );
|
||||
|
||||
virtual rtl::Reference<LogicalFontInstance> CreateFontInstance( const vcl::font::FontSelectPattern& ) const override;
|
||||
virtual rtl::Reference<LogicalFontInstance> CreateFontInstance(const vcl::font::FontSelectPattern&) const override;
|
||||
virtual sal_IntPtr GetFontId() const override { return mpFreetypeFontInfo->GetFontId(); }
|
||||
|
||||
FontCharMapRef GetFontCharMap() const override { return mpFreetypeFontInfo->GetFontCharMap(); }
|
||||
@ -121,7 +121,7 @@ class SAL_DLLPUBLIC_RTTI FreetypeFontInstance final : public LogicalFontInstance
|
||||
virtual hb_font_t* ImplInitHbFont() override;
|
||||
virtual bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override;
|
||||
|
||||
explicit FreetypeFontInstance(const PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP);
|
||||
explicit FreetypeFontInstance(const vcl::font::PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP);
|
||||
|
||||
public:
|
||||
virtual ~FreetypeFontInstance() override;
|
||||
|
@ -49,17 +49,17 @@ public:
|
||||
virtual bool AddTempDevFont( PhysicalFontCollection*, const OUString& rFileURL, const OUString& rFontName ) override;
|
||||
virtual bool CreateFontSubset(
|
||||
const OUString& rToFile,
|
||||
const PhysicalFontFace*,
|
||||
const vcl::font::PhysicalFontFace*,
|
||||
const sal_GlyphId* pGlyphIDs,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
int nGlyphs,
|
||||
FontSubsetInfo& rInfo) override;
|
||||
|
||||
virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
|
||||
virtual void GetGlyphWidths(
|
||||
const PhysicalFontFace*,
|
||||
const vcl::font::PhysicalFontFace*,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc ) override;
|
||||
|
@ -30,7 +30,7 @@
|
||||
|
||||
#include <unx/GenPspGfxBackend.hxx>
|
||||
|
||||
class PhysicalFontFace;
|
||||
namespace vcl::font { class PhysicalFontFace; }
|
||||
class PhysicalFontCollection;
|
||||
|
||||
namespace psp { struct JobData; class PrinterGfx; }
|
||||
@ -93,15 +93,15 @@ public:
|
||||
const OUString& rFontName);
|
||||
|
||||
virtual bool CreateFontSubset( const OUString& rToFile,
|
||||
const PhysicalFontFace*,
|
||||
const vcl::font::PhysicalFontFace*,
|
||||
const sal_GlyphId* pGlyphIDs,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
int nGlyphs,
|
||||
FontSubsetInfo& rInfo ) override;
|
||||
virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
|
||||
virtual void GetGlyphWidths( const PhysicalFontFace*,
|
||||
virtual void GetGlyphWidths( const vcl::font::PhysicalFontFace*,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc ) override;
|
||||
|
@ -51,7 +51,7 @@ class X11SalVirtualDevice;
|
||||
class X11SalGraphicsImpl;
|
||||
class X11SkiaSalVirtualDevice;
|
||||
class PhysicalFontCollection;
|
||||
class PhysicalFontFace;
|
||||
namespace vcl::font { class PhysicalFontFace; }
|
||||
class SalGraphicsImpl;
|
||||
class TextRenderImpl;
|
||||
|
||||
@ -122,18 +122,18 @@ public:
|
||||
|
||||
virtual bool CreateFontSubset(
|
||||
const OUString& rToFile,
|
||||
const PhysicalFontFace*,
|
||||
const vcl::font::PhysicalFontFace*,
|
||||
const sal_GlyphId* pGlyphIDs,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
int nGlyphs,
|
||||
FontSubsetInfo& rInfo ) override;
|
||||
|
||||
virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
|
||||
|
||||
virtual void GetGlyphWidths(
|
||||
const PhysicalFontFace*,
|
||||
const vcl::font::PhysicalFontFace*,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc ) override;
|
||||
|
@ -26,7 +26,7 @@
|
||||
#include <salgdi.hxx>
|
||||
#include <fontinstance.hxx>
|
||||
#include <fontattributes.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <impfont.hxx>
|
||||
#include <vcl/fontcapabilities.hxx>
|
||||
#include <vcl/fontcharmap.hxx>
|
||||
@ -58,7 +58,7 @@ class ImplFontMetricData;
|
||||
#define PALRGB_TO_RGB(nPalRGB) ((nPalRGB)&0x00ffffff)
|
||||
|
||||
// win32 specific physically available font face
|
||||
class WinFontFace : public PhysicalFontFace
|
||||
class WinFontFace : public vcl::font::PhysicalFontFace
|
||||
{
|
||||
public:
|
||||
explicit WinFontFace( const FontAttributes&,
|
||||
@ -174,7 +174,7 @@ private:
|
||||
void DeInitGraphics();
|
||||
|
||||
public:
|
||||
HFONT ImplDoSetFont(vcl::font::FontSelectPattern const & i_rFont, const PhysicalFontFace * i_pFontFace, HFONT& o_rOldFont);
|
||||
HFONT ImplDoSetFont(vcl::font::FontSelectPattern const & i_rFont, const vcl::font::PhysicalFontFace * i_pFontFace, HFONT& o_rOldFont);
|
||||
|
||||
HDC getHDC() const { return mhLocalDC; }
|
||||
void setHDC(HDC aNew);
|
||||
@ -364,7 +364,7 @@ public:
|
||||
// implementation note: encoding 0 with glyph id 0 should be added implicitly
|
||||
// as "undefined character"
|
||||
virtual bool CreateFontSubset( const OUString& rToFile,
|
||||
const PhysicalFontFace*,
|
||||
const vcl::font::PhysicalFontFace*,
|
||||
const sal_GlyphId* pGlyphIDs,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
@ -376,10 +376,10 @@ public:
|
||||
// embeddable by GetDevFontList or NULL in case of error
|
||||
// parameters: pFont: describes the font in question
|
||||
// pDataLen: out parameter, contains the byte length of the returned buffer
|
||||
virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
|
||||
// frees the font data again
|
||||
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
|
||||
virtual void GetGlyphWidths( const PhysicalFontFace*,
|
||||
virtual void GetGlyphWidths( const vcl::font::PhysicalFontFace*,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc ) override;
|
||||
@ -400,7 +400,7 @@ public:
|
||||
void ImplUpdateSysColorEntries();
|
||||
int ImplIsSysColorEntry( Color nColor );
|
||||
void ImplGetLogFontFromFontSelect( const vcl::font::FontSelectPattern&,
|
||||
const PhysicalFontFace*, LOGFONTW& );
|
||||
const vcl::font::PhysicalFontFace*, LOGFONTW& );
|
||||
|
||||
#define MAX_64KSALPOINTS ((((sal_uInt16)0xFFFF)-8)/sizeof(POINTS))
|
||||
|
||||
|
@ -7,18 +7,20 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <sal/config.h>
|
||||
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/FontSelectPattern.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFaceCollection.hxx>
|
||||
#include <fontattributes.hxx>
|
||||
#include <fontinstance.hxx>
|
||||
#include <font/FontSelectPattern.hxx>
|
||||
|
||||
class TestFontInstance : public LogicalFontInstance
|
||||
{
|
||||
public:
|
||||
TestFontInstance(PhysicalFontFace const& rFontFace,
|
||||
TestFontInstance(vcl::font::PhysicalFontFace const& rFontFace,
|
||||
vcl::font::FontSelectPattern const& rFontSelectPattern)
|
||||
: LogicalFontInstance(rFontFace, rFontSelectPattern)
|
||||
{
|
||||
@ -33,17 +35,17 @@ protected:
|
||||
bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override { return true; }
|
||||
};
|
||||
|
||||
class TestFontFace : public PhysicalFontFace
|
||||
class TestFontFace : public vcl::font::PhysicalFontFace
|
||||
{
|
||||
public:
|
||||
TestFontFace(sal_uIntPtr nId)
|
||||
: PhysicalFontFace(FontAttributes())
|
||||
: vcl::font::PhysicalFontFace(FontAttributes())
|
||||
, mnFontId(nId)
|
||||
{
|
||||
}
|
||||
|
||||
TestFontFace(FontAttributes const& rFontAttributes, sal_uIntPtr nId)
|
||||
: PhysicalFontFace(rFontAttributes)
|
||||
: vcl::font::PhysicalFontFace(rFontAttributes)
|
||||
, mnFontId(nId)
|
||||
{
|
||||
}
|
||||
|
301
vcl/qa/cppunit/physicalfontface.cxx
Normal file
301
vcl/qa/cppunit/physicalfontface.cxx
Normal file
@ -0,0 +1,301 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#include <sal/config.h>
|
||||
|
||||
#include <test/bootstrapfixture.hxx>
|
||||
#include <cppunit/TestAssert.h>
|
||||
|
||||
#include <tools/degree.hxx>
|
||||
|
||||
#include <vcl/font.hxx>
|
||||
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <fontattributes.hxx>
|
||||
|
||||
#include "fontmocks.hxx"
|
||||
|
||||
#include <memory>
|
||||
|
||||
const sal_IntPtr FONTID = 1;
|
||||
|
||||
class VclPhysicalFontFaceTest : public test::BootstrapFixture
|
||||
{
|
||||
public:
|
||||
VclPhysicalFontFaceTest()
|
||||
: BootstrapFixture(true, false)
|
||||
{
|
||||
}
|
||||
|
||||
void testShouldCompareAsLesserFontFaceWithShorterWidth();
|
||||
void testShouldCompareAsGreaterFontFaceWithLongerWidth();
|
||||
void testShouldCompareAsLesserFontFaceWithLighterWeight();
|
||||
void testShouldCompareAsGreaterFontFaceWithHeavierWeight();
|
||||
void testShouldCompareAsLesserFontFaceWithLesserItalics();
|
||||
void testShouldCompareAsGreaterFontFaceWithGreaterItalics();
|
||||
void testShouldCompareAsGreaterFontFaceWitHigherAlphabeticalFamilyName();
|
||||
void testShouldCompareAsGreaterFontFaceWitLesserAlphabeticalFamilyName();
|
||||
void testShouldCompareAsGreaterFontFaceWithHigherAlphabeticalStyleName();
|
||||
void testShouldCompareAsGreaterFontFaceWithLesserAlphabeticalStyleName();
|
||||
void testShouldCompareAsSameFontFace();
|
||||
void testMatchStatusValue();
|
||||
|
||||
CPPUNIT_TEST_SUITE(VclPhysicalFontFaceTest);
|
||||
CPPUNIT_TEST(testShouldCompareAsLesserFontFaceWithShorterWidth);
|
||||
CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithLongerWidth);
|
||||
CPPUNIT_TEST(testShouldCompareAsLesserFontFaceWithLighterWeight);
|
||||
CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithHeavierWeight);
|
||||
CPPUNIT_TEST(testShouldCompareAsLesserFontFaceWithLesserItalics);
|
||||
CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithGreaterItalics);
|
||||
CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWitHigherAlphabeticalFamilyName);
|
||||
CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWitLesserAlphabeticalFamilyName);
|
||||
CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithHigherAlphabeticalStyleName);
|
||||
CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithLesserAlphabeticalStyleName);
|
||||
CPPUNIT_TEST(testShouldCompareAsSameFontFace);
|
||||
CPPUNIT_TEST(testMatchStatusValue);
|
||||
|
||||
CPPUNIT_TEST_SUITE_END();
|
||||
};
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsLesserFontFaceWithShorterWidth()
|
||||
{
|
||||
FontAttributes aFontAttrsShorterWidth;
|
||||
aFontAttrsShorterWidth.SetWidthType(WIDTH_CONDENSED);
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsShorterWidth, FONTID));
|
||||
|
||||
FontAttributes aFontAttrsLongerWidth;
|
||||
aFontAttrsLongerWidth.SetWidthType(WIDTH_NORMAL);
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(
|
||||
new TestFontFace(aFontAttrsLongerWidth, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithLongerWidth()
|
||||
{
|
||||
FontAttributes aFontAttrsLongerWidth;
|
||||
aFontAttrsLongerWidth.SetWidthType(WIDTH_NORMAL);
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsLongerWidth, FONTID));
|
||||
|
||||
FontAttributes aFontAttrsShorterWidth;
|
||||
aFontAttrsShorterWidth.SetWidthType(WIDTH_CONDENSED);
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(
|
||||
new TestFontFace(aFontAttrsShorterWidth, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsLesserFontFaceWithLighterWeight()
|
||||
{
|
||||
FontAttributes aFontAttrsLighterWeight;
|
||||
aFontAttrsLighterWeight.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrsLighterWeight.SetWeight(WEIGHT_THIN);
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsLighterWeight, FONTID));
|
||||
|
||||
FontAttributes aFontAttrsHeavierWeight;
|
||||
aFontAttrsHeavierWeight.SetWeight(WEIGHT_BOLD);
|
||||
aFontAttrsHeavierWeight.SetWidthType(WIDTH_NORMAL);
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(
|
||||
new TestFontFace(aFontAttrsHeavierWeight, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithHeavierWeight()
|
||||
{
|
||||
FontAttributes aFontAttrsHeavierWeight;
|
||||
aFontAttrsHeavierWeight.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrsHeavierWeight.SetWeight(WEIGHT_BOLD);
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsHeavierWeight, FONTID));
|
||||
|
||||
FontAttributes aFontAttrsLighterWeight;
|
||||
aFontAttrsLighterWeight.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrsLighterWeight.SetWeight(WEIGHT_THIN);
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(
|
||||
new TestFontFace(aFontAttrsLighterWeight, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsLesserFontFaceWithLesserItalics()
|
||||
{
|
||||
FontAttributes aFontAttrsLesserItalics;
|
||||
aFontAttrsLesserItalics.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrsLesserItalics.SetWeight(WEIGHT_THIN);
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsLesserItalics, FONTID));
|
||||
|
||||
FontAttributes aFontAttrsGreaterItalics;
|
||||
aFontAttrsGreaterItalics.SetWeight(WEIGHT_BOLD);
|
||||
aFontAttrsGreaterItalics.SetWidthType(WIDTH_NORMAL);
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(
|
||||
new TestFontFace(aFontAttrsGreaterItalics, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithGreaterItalics()
|
||||
{
|
||||
FontAttributes aFontAttrsGreaterItalics;
|
||||
aFontAttrsGreaterItalics.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrsGreaterItalics.SetWeight(WEIGHT_BOLD);
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(
|
||||
new TestFontFace(aFontAttrsGreaterItalics, FONTID));
|
||||
|
||||
FontAttributes aFontAttrsLesserItalics;
|
||||
aFontAttrsLesserItalics.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrsLesserItalics.SetWeight(WEIGHT_THIN);
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(
|
||||
new TestFontFace(aFontAttrsLesserItalics, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWitHigherAlphabeticalFamilyName()
|
||||
{
|
||||
FontAttributes aFontAttrs1;
|
||||
aFontAttrs1.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs1.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs1.SetFamilyName("B family");
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
|
||||
|
||||
FontAttributes aFontAttrs2;
|
||||
aFontAttrs2.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs2.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs2.SetFamilyName("A Family");
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWitLesserAlphabeticalFamilyName()
|
||||
{
|
||||
FontAttributes aFontAttrs1;
|
||||
aFontAttrs1.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs1.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs1.SetFamilyName("A family");
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
|
||||
|
||||
FontAttributes aFontAttrs2;
|
||||
aFontAttrs2.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs2.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs2.SetFamilyName("B Family");
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithHigherAlphabeticalStyleName()
|
||||
{
|
||||
FontAttributes aFontAttrs1;
|
||||
aFontAttrs1.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs1.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs1.SetFamilyName("DejaVu Sans");
|
||||
aFontAttrs1.SetStyleName("B Style");
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
|
||||
|
||||
FontAttributes aFontAttrs2;
|
||||
aFontAttrs2.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs2.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs2.SetFamilyName("DejaVu Sans");
|
||||
aFontAttrs2.SetStyleName("A Style");
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithLesserAlphabeticalStyleName()
|
||||
{
|
||||
FontAttributes aFontAttrs1;
|
||||
aFontAttrs1.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs1.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs1.SetFamilyName("DejaVu Sans");
|
||||
aFontAttrs1.SetStyleName("A Style");
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
|
||||
|
||||
FontAttributes aFontAttrs2;
|
||||
aFontAttrs2.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs2.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs2.SetFamilyName("DejaVu Sans");
|
||||
aFontAttrs2.SetStyleName("B Style");
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testShouldCompareAsSameFontFace()
|
||||
{
|
||||
FontAttributes aFontAttrs1;
|
||||
aFontAttrs1.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs1.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs1.SetFamilyName("DejaVu Sans");
|
||||
aFontAttrs1.SetStyleName("Style");
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
|
||||
|
||||
FontAttributes aFontAttrs2;
|
||||
aFontAttrs2.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs2.SetWeight(WEIGHT_NORMAL);
|
||||
aFontAttrs2.SetFamilyName("DejaVu Sans");
|
||||
aFontAttrs2.SetStyleName("Style");
|
||||
rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0),
|
||||
aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
|
||||
}
|
||||
|
||||
void VclPhysicalFontFaceTest::testMatchStatusValue()
|
||||
{
|
||||
FontAttributes aFontAttrs;
|
||||
aFontAttrs.SetFamilyName("DejaVu Sans");
|
||||
aFontAttrs.SetStyleName("Book");
|
||||
aFontAttrs.SetPitch(FontPitch::PITCH_VARIABLE);
|
||||
aFontAttrs.SetWidthType(WIDTH_NORMAL);
|
||||
aFontAttrs.SetWeight(WEIGHT_BOLD);
|
||||
rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs, FONTID));
|
||||
|
||||
std::unique_ptr<OUString> pTargetStyleName(new OUString("Book"));
|
||||
vcl::font::FontMatchStatus aFontMatchStatus = { 0, 0, 0, pTargetStyleName.get() };
|
||||
|
||||
vcl::Font aTestFont("DejaVu Sans", "Book", Size(0, 36));
|
||||
|
||||
vcl::font::FontSelectPattern aFSP(aTestFont, "DejaVu Sans", Size(0, 36), 36, true);
|
||||
aFSP.mbEmbolden = false;
|
||||
aFSP.mnOrientation = Degree10(10);
|
||||
aFSP.SetWeight(WEIGHT_BOLD);
|
||||
aFSP.SetPitch(FontPitch::PITCH_VARIABLE);
|
||||
aFSP.maTargetName = "DejaVu Sans";
|
||||
|
||||
const int EXPECTED_FAMILY = 240'000;
|
||||
const int EXPECTED_STYLE = 120'000;
|
||||
const int EXPECTED_PITCH = 20'000;
|
||||
const int EXPECTED_WIDTHTYPE = 400;
|
||||
const int EXPECTED_WEIGHT = 1'000;
|
||||
const int EXPECTED_ITALIC = 900;
|
||||
const int EXPECTED_ORIENTATION = 80;
|
||||
|
||||
const int EXPECTED_MATCH = EXPECTED_FAMILY + EXPECTED_STYLE + EXPECTED_PITCH
|
||||
+ EXPECTED_WIDTHTYPE + EXPECTED_WEIGHT + EXPECTED_ITALIC
|
||||
+ EXPECTED_ORIENTATION;
|
||||
|
||||
CPPUNIT_ASSERT(aTestedFontFace->IsBetterMatch(aFSP, aFontMatchStatus));
|
||||
CPPUNIT_ASSERT_EQUAL(EXPECTED_MATCH, aFontMatchStatus.mnFaceMatch);
|
||||
}
|
||||
|
||||
CPPUNIT_TEST_SUITE_REGISTRATION(VclPhysicalFontFaceTest);
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
|
@ -42,8 +42,8 @@ void VclPhysicalFontFaceCollectionTest::testShouldGetFontId()
|
||||
vcl::font::PhysicalFontFaceCollection aCollection;
|
||||
aCollection.Add(new TestFontFace(1988756));
|
||||
|
||||
rtl::Reference<PhysicalFontFace> pActual(new TestFontFace(1988756));
|
||||
rtl::Reference<PhysicalFontFace> pExpected = aCollection.Get(0);
|
||||
rtl::Reference<vcl::font::PhysicalFontFace> pActual(new TestFontFace(1988756));
|
||||
rtl::Reference<vcl::font::PhysicalFontFace> pExpected = aCollection.Get(0);
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(pExpected->GetFontId(), pActual->GetFontId());
|
||||
CPPUNIT_ASSERT_EQUAL(1, aCollection.Count());
|
||||
|
@ -120,7 +120,7 @@ static inline void applyStyle(QtFont& rFont, FontItalic eItalic)
|
||||
}
|
||||
}
|
||||
|
||||
QtFont::QtFont(const PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
|
||||
QtFont::QtFont(const vcl::font::PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
|
||||
: LogicalFontInstance(rPFF, rFSP)
|
||||
{
|
||||
setFamily(toQString(rPFF.GetFamilyName()));
|
||||
|
@ -39,7 +39,7 @@
|
||||
using namespace vcl;
|
||||
|
||||
QtFontFace::QtFontFace(const QtFontFace& rSrc)
|
||||
: PhysicalFontFace(rSrc)
|
||||
: vcl::font::PhysicalFontFace(rSrc)
|
||||
, m_aFontId(rSrc.m_aFontId)
|
||||
, m_eFontIdType(rSrc.m_eFontIdType)
|
||||
{
|
||||
|
@ -216,7 +216,8 @@ const sal_uInt8* QtTrueTypeFont::table(sal_uInt32 ord, sal_uInt32& size) const
|
||||
}
|
||||
}
|
||||
|
||||
bool QtGraphics::CreateFontSubset(const OUString& rToFile, const PhysicalFontFace* pFontFace,
|
||||
bool QtGraphics::CreateFontSubset(const OUString& rToFile,
|
||||
const vcl::font::PhysicalFontFace* pFontFace,
|
||||
const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
|
||||
sal_Int32* pGlyphWidths, int nGlyphCount, FontSubsetInfo& rInfo)
|
||||
{
|
||||
@ -254,14 +255,15 @@ bool QtGraphics::CreateFontSubset(const OUString& rToFile, const PhysicalFontFac
|
||||
pGlyphIds, pEncoding, pGlyphWidths, nGlyphCount);
|
||||
}
|
||||
|
||||
const void* QtGraphics::GetEmbedFontData(const PhysicalFontFace*, tools::Long* /*pDataLen*/)
|
||||
const void* QtGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace*,
|
||||
tools::Long* /*pDataLen*/)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void QtGraphics::FreeEmbedFontData(const void* /*pData*/, tools::Long /*nDataLen*/) {}
|
||||
|
||||
void QtGraphics::GetGlyphWidths(const PhysicalFontFace* pFontFace, bool bVertical,
|
||||
void QtGraphics::GetGlyphWidths(const vcl::font::PhysicalFontFace* pFontFace, bool bVertical,
|
||||
std::vector<sal_Int32>& rWidths, Ucs2UIntMap& rUnicodeEnc)
|
||||
{
|
||||
const QtFontFace* pQtFontFace = static_cast<const QtFontFace*>(pFontFace);
|
||||
|
@ -46,7 +46,7 @@ static double toRadian(int nDegree)
|
||||
return nDegree * (M_PI / 1800.0);
|
||||
}
|
||||
|
||||
CoreTextStyle::CoreTextStyle(const PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
|
||||
CoreTextStyle::CoreTextStyle(const vcl::font::PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
|
||||
: LogicalFontInstance(rPFF, rFSP)
|
||||
, mfFontStretch( 1.0 )
|
||||
, mfFontRotation( 0.0 )
|
||||
|
@ -109,7 +109,7 @@ bool CoreTextGlyphFallbackSubstititution::FindFontSubstitute(vcl::font::FontSele
|
||||
}
|
||||
|
||||
CoreTextFontFace::CoreTextFontFace( const FontAttributes& rDFA, sal_IntPtr nFontId )
|
||||
: PhysicalFontFace( rDFA )
|
||||
: vcl::font::PhysicalFontFace( rDFA )
|
||||
, mnFontId( nFontId )
|
||||
, mbFontCapabilitiesRead( false )
|
||||
{
|
||||
@ -556,7 +556,7 @@ static void FakeDirEntry( const char aTag[5], ByteCount nOfs, ByteCount nLen,
|
||||
|
||||
// fake a TTF or CFF font as directly accessing font file is not possible
|
||||
// when only the fontid is known. This approach also handles *.font fonts.
|
||||
bool AquaSalGraphics::GetRawFontData( const PhysicalFontFace* pFontData,
|
||||
bool AquaSalGraphics::GetRawFontData( const vcl::font::PhysicalFontFace* pFontData,
|
||||
std::vector<unsigned char>& rBuffer, bool* pJustCFF )
|
||||
{
|
||||
const CoreTextFontFace* pMacFont = static_cast<const CoreTextFontFace*>(pFontData);
|
||||
@ -742,7 +742,7 @@ bool AquaSalGraphics::GetRawFontData( const PhysicalFontFace* pFontData,
|
||||
return true;
|
||||
}
|
||||
|
||||
void AquaSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFontData, bool bVertical,
|
||||
void AquaSalGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFontData, bool bVertical,
|
||||
std::vector< sal_Int32 >& rGlyphWidths, Ucs2UIntMap& rUnicodeEnc )
|
||||
{
|
||||
rGlyphWidths.clear();
|
||||
@ -768,7 +768,7 @@ void AquaSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFontData, bool bV
|
||||
::CloseTTFont( pSftFont );
|
||||
}
|
||||
|
||||
const void* AquaSalGraphics::GetEmbedFontData(const PhysicalFontFace*, tools::Long* /*pDataLen*/)
|
||||
const void* AquaSalGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* /*pDataLen*/)
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
|
@ -47,7 +47,7 @@
|
||||
using namespace vcl;
|
||||
|
||||
bool AquaSalGraphics::CreateFontSubset( const OUString& rToFile,
|
||||
const PhysicalFontFace* pFontData,
|
||||
const vcl::font::PhysicalFontFace* pFontData,
|
||||
const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
|
||||
sal_Int32* pGlyphWidths, const int nGlyphCount,
|
||||
FontSubsetInfo& rInfo )
|
||||
|
@ -20,10 +20,11 @@
|
||||
#include <sal/config.h>
|
||||
#include <o3tl/safeint.hxx>
|
||||
#include <tools/gen.hxx>
|
||||
|
||||
#include <vcl/font.hxx>
|
||||
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/FontSelectPattern.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
|
||||
namespace vcl::font
|
||||
{
|
@ -276,7 +276,7 @@ vcl::font::PhysicalFontFamily* PhysicalFontCollection::GetGlyphFallbackFont( vcl
|
||||
return pFallbackData;
|
||||
}
|
||||
|
||||
void PhysicalFontCollection::Add( PhysicalFontFace* pNewData )
|
||||
void PhysicalFontCollection::Add( vcl::font::PhysicalFontFace* pNewData )
|
||||
{
|
||||
OUString aSearchName = GetEnglishSearchFontName( pNewData->GetFamilyName() );
|
||||
|
||||
|
@ -24,9 +24,12 @@
|
||||
#include <unotools/fontdefs.hxx>
|
||||
|
||||
#include <fontattributes.hxx>
|
||||
#include <font/FontSelectPattern.hxx>
|
||||
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/FontSelectPattern.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
|
||||
namespace vcl::font
|
||||
{
|
||||
|
||||
PhysicalFontFace::PhysicalFontFace( const FontAttributes& rDFA )
|
||||
: FontAttributes( rDFA )
|
||||
@ -176,5 +179,6 @@ bool PhysicalFontFace::IsBetterMatch( const vcl::font::FontSelectPattern& rFSD,
|
||||
rStatus.mnWidthMatch = nWidthMatch;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
|
||||
|
@ -18,10 +18,11 @@
|
||||
*/
|
||||
|
||||
#include <sal/config.h>
|
||||
|
||||
#include <sal/log.hxx>
|
||||
|
||||
#include <PhysicalFontCollection.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFamily.hxx>
|
||||
#include <fontinstance.hxx>
|
||||
#include <impfontcache.hxx>
|
||||
@ -143,7 +144,7 @@ rtl::Reference<LogicalFontInstance> ImplFontCache::GetFontInstance( PhysicalFont
|
||||
|
||||
if( !pFontInstance && pFontFamily) // still no cache hit => create a new font instance
|
||||
{
|
||||
PhysicalFontFace* pFontData = pFontFamily->FindBestFontFace(aFontSelData);
|
||||
vcl::font::PhysicalFontFace* pFontData = pFontFamily->FindBestFontFace(aFontSelData);
|
||||
|
||||
// create a new logical font instance from this physical font face
|
||||
pFontInstance = pFontData->CreateFontInstance( aFontSelData );
|
||||
|
@ -22,9 +22,9 @@
|
||||
#include <hb-ot.h>
|
||||
#include <hb-graphite2.h>
|
||||
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <fontinstance.hxx>
|
||||
#include <impfontcache.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
|
||||
#include <o3tl/hash_combine.hxx>
|
||||
|
||||
@ -45,7 +45,7 @@ namespace std
|
||||
}
|
||||
|
||||
|
||||
LogicalFontInstance::LogicalFontInstance(const PhysicalFontFace& rFontFace, const vcl::font::FontSelectPattern& rFontSelData )
|
||||
LogicalFontInstance::LogicalFontInstance(const vcl::font::PhysicalFontFace& rFontFace, const vcl::font::FontSelectPattern& rFontSelData )
|
||||
: mxFontMetric( new ImplFontMetricData( rFontSelData ))
|
||||
, mpConversion( nullptr )
|
||||
, mnLineHeight( 0 )
|
||||
@ -56,7 +56,7 @@ LogicalFontInstance::LogicalFontInstance(const PhysicalFontFace& rFontFace, cons
|
||||
, m_aFontSelData(rFontSelData)
|
||||
, m_pHbFont(nullptr)
|
||||
, m_nAveWidthFactor(1.0f)
|
||||
, m_pFontFace(&const_cast<PhysicalFontFace&>(rFontFace))
|
||||
, m_pFontFace(&const_cast<vcl::font::PhysicalFontFace&>(rFontFace))
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -26,9 +26,9 @@
|
||||
#include <vcl/outdev.hxx>
|
||||
#include <sal/log.hxx>
|
||||
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <fontinstance.hxx>
|
||||
#include <font/FontSelectPattern.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <fontinstance.hxx>
|
||||
#include <impfontmetricdata.hxx>
|
||||
#include <sft.hxx>
|
||||
|
||||
@ -53,7 +53,7 @@ FontMetric::FontMetric()
|
||||
|
||||
FontMetric::FontMetric( const FontMetric& rFontMetric ) = default;
|
||||
|
||||
FontMetric::FontMetric(PhysicalFontFace const& rFace)
|
||||
FontMetric::FontMetric(vcl::font::PhysicalFontFace const& rFace)
|
||||
: FontMetric()
|
||||
{
|
||||
SetFamilyName(rFace.GetFamilyName());
|
||||
|
@ -260,12 +260,12 @@ OUString EmbeddedFontsHelper::fontFileUrl( std::u16string_view familyName, FontF
|
||||
PhysicalFontCollection fonts;
|
||||
graphics->GetDevFontList( &fonts );
|
||||
std::unique_ptr< vcl::font::PhysicalFontFaceCollection > fontInfo( fonts.GetFontFaceCollection());
|
||||
PhysicalFontFace* selected = nullptr;
|
||||
vcl::font::PhysicalFontFace* selected = nullptr;
|
||||
for( int i = 0;
|
||||
i < fontInfo->Count();
|
||||
++i )
|
||||
{
|
||||
PhysicalFontFace* f = fontInfo->Get( i );
|
||||
vcl::font::PhysicalFontFace* f = fontInfo->Get( i );
|
||||
if( f->GetFamilyName() == familyName )
|
||||
{
|
||||
// Ignore comparing text encodings, at least for now. They cannot be trivially compared
|
||||
|
@ -731,7 +731,7 @@ const BuildinFont BuildinFontFace::m_aBuildinFonts[14]
|
||||
|
||||
};
|
||||
|
||||
BuildinFontInstance::BuildinFontInstance(const PhysicalFontFace& rFontFace,
|
||||
BuildinFontInstance::BuildinFontInstance(const vcl::font::PhysicalFontFace& rFontFace,
|
||||
const vcl::font::FontSelectPattern& rFSP)
|
||||
: LogicalFontInstance(rFontFace, rFSP)
|
||||
{
|
||||
@ -748,7 +748,7 @@ bool BuildinFontInstance::GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon&,
|
||||
}
|
||||
|
||||
BuildinFontFace::BuildinFontFace(int nId)
|
||||
: PhysicalFontFace(m_aBuildinFonts[nId].GetFontAttributes())
|
||||
: vcl::font::PhysicalFontFace(m_aBuildinFonts[nId].GetFontAttributes())
|
||||
, mrBuildin(m_aBuildinFonts[nId])
|
||||
{
|
||||
}
|
||||
|
@ -21,7 +21,7 @@
|
||||
|
||||
#include <sal/types.h>
|
||||
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <pdf/pdffontcache.hxx>
|
||||
#include <salgdi.hxx>
|
||||
|
||||
@ -29,14 +29,14 @@
|
||||
|
||||
using namespace vcl;
|
||||
|
||||
PDFFontCache::FontIdentifier::FontIdentifier( const PhysicalFontFace* pFont, bool bVertical ) :
|
||||
PDFFontCache::FontIdentifier::FontIdentifier( const vcl::font::PhysicalFontFace* pFont, bool bVertical ) :
|
||||
m_nFontId( pFont->GetFontId() ),
|
||||
m_bVertical( bVertical ),
|
||||
m_typeFontFace( const_cast<std::type_info*>(&typeid(pFont)) )
|
||||
{
|
||||
}
|
||||
|
||||
PDFFontCache::FontData& PDFFontCache::getFont( const PhysicalFontFace* pFont, bool bVertical )
|
||||
PDFFontCache::FontData& PDFFontCache::getFont( const vcl::font::PhysicalFontFace* pFont, bool bVertical )
|
||||
{
|
||||
FontIdentifier aId( pFont, bVertical );
|
||||
FontToIndexMap::iterator it = m_aFontToIndex.find( aId );
|
||||
@ -47,7 +47,7 @@ PDFFontCache::FontData& PDFFontCache::getFont( const PhysicalFontFace* pFont, bo
|
||||
return m_aFonts.back();
|
||||
}
|
||||
|
||||
sal_Int32 PDFFontCache::getGlyphWidth( const PhysicalFontFace* pFont, sal_GlyphId nGlyph, bool bVertical, SalGraphics* pGraphics )
|
||||
sal_Int32 PDFFontCache::getGlyphWidth( const vcl::font::PhysicalFontFace* pFont, sal_GlyphId nGlyph, bool bVertical, SalGraphics* pGraphics )
|
||||
{
|
||||
sal_Int32 nWidth = 0;
|
||||
FontData& rFontData( getFont( pFont, bVertical ) );
|
||||
|
@ -72,7 +72,7 @@
|
||||
#include <svdata.hxx>
|
||||
#include <bitmap/BitmapWriteAccess.hxx>
|
||||
#include <fontsubset.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <salgdi.hxx>
|
||||
#include <textlayout.hxx>
|
||||
#include <textlineinfo.hxx>
|
||||
@ -2310,7 +2310,7 @@ sal_Int32 PDFWriterImpl::emitBuildinFont(const pdf::BuildinFontFace* pFD, sal_In
|
||||
return nFontObject;
|
||||
}
|
||||
|
||||
std::map< sal_Int32, sal_Int32 > PDFWriterImpl::emitSystemFont( const PhysicalFontFace* pFont, EmbedFont const & rEmbed )
|
||||
std::map< sal_Int32, sal_Int32 > PDFWriterImpl::emitSystemFont( const vcl::font::PhysicalFontFace* pFont, EmbedFont const & rEmbed )
|
||||
{
|
||||
std::map< sal_Int32, sal_Int32 > aRet;
|
||||
|
||||
@ -2549,7 +2549,7 @@ sal_Int32 PDFWriterImpl::createToUnicodeCMap( sal_uInt8 const * pEncoding,
|
||||
return nStream;
|
||||
}
|
||||
|
||||
sal_Int32 PDFWriterImpl::emitFontDescriptor( const PhysicalFontFace* pFont, FontSubsetInfo const & rInfo, sal_Int32 nSubsetID, sal_Int32 nFontStream )
|
||||
sal_Int32 PDFWriterImpl::emitFontDescriptor( const vcl::font::PhysicalFontFace* pFont, FontSubsetInfo const & rInfo, sal_Int32 nSubsetID, sal_Int32 nFontStream )
|
||||
{
|
||||
OStringBuffer aLine( 1024 );
|
||||
// get font flags, see PDF reference 1.4 p. 358
|
||||
@ -2854,7 +2854,7 @@ bool PDFWriterImpl::emitFonts()
|
||||
}
|
||||
else
|
||||
{
|
||||
const PhysicalFontFace* pFont = subset.first;
|
||||
const vcl::font::PhysicalFontFace* pFont = subset.first;
|
||||
OStringBuffer aErrorComment( 256 );
|
||||
aErrorComment.append( "CreateFontSubset failed for font \"" );
|
||||
aErrorComment.append( OUStringToOString( pFont->GetFamilyName(), RTL_TEXTENCODING_UTF8 ) );
|
||||
@ -3889,7 +3889,7 @@ void PDFWriterImpl::createDefaultCheckBoxAppearance( PDFWidget& rBox, const PDFW
|
||||
FontCharMapRef pMap;
|
||||
GetFontCharMap(pMap);
|
||||
const LogicalFontInstance* pFontInstance = GetFontInstance();
|
||||
const PhysicalFontFace* pDevFont = pFontInstance->GetFontFace();
|
||||
const vcl::font::PhysicalFontFace* pDevFont = pFontInstance->GetFontFace();
|
||||
Pop();
|
||||
|
||||
// make sure OpenSymbol is embedded, and includes our checkmark
|
||||
@ -5676,7 +5676,7 @@ sal_Int32 PDFWriterImpl::getSystemFont( const vcl::Font& i_rFont )
|
||||
|
||||
SetFont( i_rFont );
|
||||
|
||||
const PhysicalFontFace* pDevFont = GetFontInstance()->GetFontFace();
|
||||
const vcl::font::PhysicalFontFace* pDevFont = GetFontInstance()->GetFontFace();
|
||||
sal_Int32 nFontID = 0;
|
||||
auto it = m_aSystemFonts.find( pDevFont );
|
||||
if( it != m_aSystemFonts.end() )
|
||||
@ -5693,7 +5693,7 @@ sal_Int32 PDFWriterImpl::getSystemFont( const vcl::Font& i_rFont )
|
||||
}
|
||||
|
||||
void PDFWriterImpl::registerGlyph(const GlyphItem* pGlyph,
|
||||
const PhysicalFontFace* pFont,
|
||||
const vcl::font::PhysicalFontFace* pFont,
|
||||
const std::vector<sal_Ucs>& rCodeUnits,
|
||||
sal_uInt8& nMappedGlyph,
|
||||
sal_Int32& nMappedFontObject)
|
||||
@ -6123,9 +6123,9 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool
|
||||
}
|
||||
|
||||
FontMetric aRefDevFontMetric = GetFontMetric();
|
||||
const PhysicalFontFace* pDevFont = GetFontInstance()->GetFontFace();
|
||||
const vcl::font::PhysicalFontFace* pDevFont = GetFontInstance()->GetFontFace();
|
||||
const GlyphItem* pGlyph = nullptr;
|
||||
const PhysicalFontFace* pFallbackFont = nullptr;
|
||||
const vcl::font::PhysicalFontFace* pFallbackFont = nullptr;
|
||||
|
||||
// collect the glyphs into a single array
|
||||
std::vector< PDFGlyph > aGlyphs;
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <memory>
|
||||
#include <config_features.h>
|
||||
#include <sal/log.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <fontsubset.hxx>
|
||||
#include <salgdi.hxx>
|
||||
#include <salframe.hxx>
|
||||
@ -885,7 +885,7 @@ OUString SalGraphics::getRenderBackendName() const
|
||||
}
|
||||
|
||||
void SalGraphics::GetGlyphWidths(const vcl::AbstractTrueTypeFont& rTTF,
|
||||
const PhysicalFontFace& rFontFace, const bool bVertical,
|
||||
const vcl::font::PhysicalFontFace& rFontFace, const bool bVertical,
|
||||
std::vector<sal_Int32>& rWidths, Ucs2UIntMap& rUnicodeEnc)
|
||||
{
|
||||
rWidths.clear();
|
||||
|
@ -493,7 +493,7 @@ sal_Int32 GenericSalLayout::GetTextBreak( DeviceCoordinate nMaxWidth, DeviceCoor
|
||||
bool GenericSalLayout::GetNextGlyph(const GlyphItem** pGlyph,
|
||||
Point& rPos, int& nStart,
|
||||
const LogicalFontInstance** ppGlyphFont,
|
||||
const PhysicalFontFace**) const
|
||||
const vcl::font::PhysicalFontFace**) const
|
||||
{
|
||||
std::vector<GlyphItem>::const_iterator pGlyphIter = m_GlyphItems.begin();
|
||||
std::vector<GlyphItem>::const_iterator pGlyphIterEnd = m_GlyphItems.end();
|
||||
@ -1107,7 +1107,7 @@ void MultiSalLayout::GetCaretPositions( int nMaxIndex, tools::Long* pCaretXArray
|
||||
bool MultiSalLayout::GetNextGlyph(const GlyphItem** pGlyph,
|
||||
Point& rPos, int& nStart,
|
||||
const LogicalFontInstance** ppGlyphFont,
|
||||
const PhysicalFontFace** pFallbackFont) const
|
||||
const vcl::font::PhysicalFontFace** pFallbackFont) const
|
||||
{
|
||||
// NOTE: nStart is tagged with current font index
|
||||
int nLevel = static_cast<unsigned>(nStart) >> GF_FONTSHIFT;
|
||||
@ -1116,7 +1116,7 @@ bool MultiSalLayout::GetNextGlyph(const GlyphItem** pGlyph,
|
||||
{
|
||||
GenericSalLayout& rLayout = *mpLayouts[ nLevel ];
|
||||
rLayout.InitFont();
|
||||
const PhysicalFontFace* pFontFace = rLayout.GetFont().GetFontFace();
|
||||
const vcl::font::PhysicalFontFace* pFontFace = rLayout.GetFont().GetFontFace();
|
||||
if (rLayout.GetNextGlyph(pGlyph, rPos, nStart, ppGlyphFont))
|
||||
{
|
||||
int nFontTag = nLevel << GF_FONTSHIFT;
|
||||
|
@ -83,7 +83,7 @@ std::unique_ptr<GenericSalLayout> X11SalGraphics::GetTextLayout(int nFallbackLev
|
||||
|
||||
bool X11SalGraphics::CreateFontSubset(
|
||||
const OUString& rToFile,
|
||||
const PhysicalFontFace* pFont,
|
||||
const vcl::font::PhysicalFontFace* pFont,
|
||||
const sal_GlyphId* pGlyphIds,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
@ -95,7 +95,7 @@ bool X11SalGraphics::CreateFontSubset(
|
||||
pGlyphIds, pEncoding, pWidths, nGlyphCount, rInfo);
|
||||
}
|
||||
|
||||
const void* X11SalGraphics::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
const void* X11SalGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
{
|
||||
return mxTextRenderImpl->GetEmbedFontData(pFont, pDataLen);
|
||||
}
|
||||
@ -105,7 +105,7 @@ void X11SalGraphics::FreeEmbedFontData( const void* pData, tools::Long nLen )
|
||||
mxTextRenderImpl->FreeEmbedFontData(pData, nLen);
|
||||
}
|
||||
|
||||
void X11SalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
|
||||
void X11SalGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc )
|
||||
|
@ -33,7 +33,7 @@
|
||||
#include <unx/glyphcache.hxx>
|
||||
#include <unx/fc_fontoptions.hxx>
|
||||
#include <unx/freetype_glyphcache.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <impfontmetricdata.hxx>
|
||||
|
||||
#include <sallayout.hxx>
|
||||
@ -157,7 +157,7 @@ std::unique_ptr<GenericSalLayout> FreeTypeTextRenderImpl::GetTextLayout(int nFal
|
||||
|
||||
bool FreeTypeTextRenderImpl::CreateFontSubset(
|
||||
const OUString& rToFile,
|
||||
const PhysicalFontFace* pFont,
|
||||
const vcl::font::PhysicalFontFace* pFont,
|
||||
const sal_GlyphId* pGlyphIds,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
@ -183,7 +183,7 @@ bool FreeTypeTextRenderImpl::CreateFontSubset(
|
||||
return bSuccess;
|
||||
}
|
||||
|
||||
const void* FreeTypeTextRenderImpl::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
const void* FreeTypeTextRenderImpl::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
{
|
||||
// in this context the pFont->GetFontId() is a valid PSP
|
||||
// font since they are the only ones left after the PDF
|
||||
@ -199,7 +199,7 @@ void FreeTypeTextRenderImpl::FreeEmbedFontData( const void* pData, tools::Long n
|
||||
GenPspGraphics::DoFreeEmbedFontData( pData, nLen );
|
||||
}
|
||||
|
||||
void FreeTypeTextRenderImpl::GetGlyphWidths( const PhysicalFontFace* pFont,
|
||||
void FreeTypeTextRenderImpl::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc )
|
||||
|
@ -373,7 +373,7 @@ FreetypeFont* FreetypeManager::CreateFont(FreetypeFontInstance* pFontInstance)
|
||||
if (!pFontInstance)
|
||||
return nullptr;
|
||||
|
||||
const PhysicalFontFace* pFontFace = pFontInstance->GetFontFace();
|
||||
const vcl::font::PhysicalFontFace* pFontFace = pFontInstance->GetFontFace();
|
||||
if (!pFontFace)
|
||||
return nullptr;
|
||||
|
||||
@ -387,7 +387,7 @@ FreetypeFont* FreetypeManager::CreateFont(FreetypeFontInstance* pFontInstance)
|
||||
}
|
||||
|
||||
FreetypeFontFace::FreetypeFontFace( FreetypeFontInfo* pFI, const FontAttributes& rDFA )
|
||||
: PhysicalFontFace( rDFA ),
|
||||
: vcl::font::PhysicalFontFace( rDFA ),
|
||||
mpFreetypeFontInfo( pFI )
|
||||
{
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ FreetypeFontFile* FreetypeManager::FindFontFile(const OString& rNativeFileName)
|
||||
return pFontFile;
|
||||
}
|
||||
|
||||
FreetypeFontInstance::FreetypeFontInstance(const PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
|
||||
FreetypeFontInstance::FreetypeFontInstance(const vcl::font::PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
|
||||
: LogicalFontInstance(rPFF, rFSP)
|
||||
, mxFreetypeFont(FreetypeManager::get().CreateFont(this))
|
||||
{
|
||||
|
@ -46,8 +46,9 @@
|
||||
#include <fontinstance.hxx>
|
||||
#include <fontattributes.hxx>
|
||||
#include <impfontmetricdata.hxx>
|
||||
#include <font/FontSelectPattern.hxx>
|
||||
#include <PhysicalFontCollection.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <sallayout.hxx>
|
||||
|
||||
using namespace psp;
|
||||
@ -309,7 +310,7 @@ std::unique_ptr<GenericSalLayout> GenPspGraphics::GetTextLayout(int nFallbackLev
|
||||
|
||||
bool GenPspGraphics::CreateFontSubset(
|
||||
const OUString& rToFile,
|
||||
const PhysicalFontFace* pFont,
|
||||
const vcl::font::PhysicalFontFace* pFont,
|
||||
const sal_GlyphId* pGlyphIds,
|
||||
const sal_uInt8* pEncoding,
|
||||
sal_Int32* pWidths,
|
||||
@ -335,7 +336,7 @@ bool GenPspGraphics::CreateFontSubset(
|
||||
return bSuccess;
|
||||
}
|
||||
|
||||
void GenPspGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
|
||||
void GenPspGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc )
|
||||
@ -504,7 +505,7 @@ void GenPspGraphics::FreeEmbedFontData( const void* pData, tools::Long nLen )
|
||||
DoFreeEmbedFontData( pData, nLen );
|
||||
}
|
||||
|
||||
const void* GenPspGraphics::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
const void* GenPspGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
{
|
||||
// in this context the pFont->GetFontId() is a valid PSP
|
||||
// font since they are the only ones left after the PDF
|
||||
|
@ -51,11 +51,12 @@
|
||||
#include <vcl/fontcharmap.hxx>
|
||||
#include <comphelper/scopeguard.hxx>
|
||||
|
||||
#include <font/FontSelectPattern.hxx>
|
||||
#include <fontsubset.hxx>
|
||||
#include <outdev.h>
|
||||
#include <font/PhysicalFontFaceCollection.hxx>
|
||||
#include <PhysicalFontCollection.hxx>
|
||||
#include <PhysicalFontFace.hxx>
|
||||
#include <font/PhysicalFontFace.hxx>
|
||||
#include <sft.hxx>
|
||||
#include <win/saldata.hxx>
|
||||
#include <win/salgdi.h>
|
||||
@ -180,13 +181,13 @@ public:
|
||||
bool FindFontSubstitute(vcl::font::FontSelectPattern&, LogicalFontInstance* pLogicalFont, OUString& rMissingChars) const override;
|
||||
private:
|
||||
HDC mhDC;
|
||||
bool HasMissingChars(PhysicalFontFace*, OUString& rMissingChars) const;
|
||||
bool HasMissingChars(vcl::font::PhysicalFontFace*, OUString& rMissingChars) const;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
// does a font face hold the given missing characters?
|
||||
bool WinGlyphFallbackSubstititution::HasMissingChars(PhysicalFontFace* pFace, OUString& rMissingChars) const
|
||||
bool WinGlyphFallbackSubstititution::HasMissingChars(vcl::font::PhysicalFontFace* pFace, OUString& rMissingChars) const
|
||||
{
|
||||
WinFontFace* pWinFont = static_cast< WinFontFace* >(pFace);
|
||||
FontCharMapRef xFontCharMap = pWinFont->GetFontCharMap();
|
||||
@ -303,7 +304,7 @@ bool WinGlyphFallbackSubstititution::FindFontSubstitute(vcl::font::FontSelectPat
|
||||
vcl::font::PhysicalFontFamily* pFontFamily = findDevFontListByLocale(*pFontCollection, aLanguageTag);
|
||||
if( pFontFamily )
|
||||
{
|
||||
PhysicalFontFace* pFace = pFontFamily->FindBestFontFace( rFontSelData );
|
||||
vcl::font::PhysicalFontFace* pFace = pFontFamily->FindBestFontFace( rFontSelData );
|
||||
if( HasMissingChars( pFace, rMissingChars ) )
|
||||
{
|
||||
rFontSelData.maSearchName = pFontFamily->GetSearchName();
|
||||
@ -319,7 +320,7 @@ bool WinGlyphFallbackSubstititution::FindFontSubstitute(vcl::font::FontSelectPat
|
||||
rFontSelData.maSearchName );
|
||||
if( pFontFamily )
|
||||
{
|
||||
PhysicalFontFace* pFace = pFontFamily->FindBestFontFace( rFontSelData );
|
||||
vcl::font::PhysicalFontFace* pFace = pFontFamily->FindBestFontFace( rFontSelData );
|
||||
if( HasMissingChars( pFace, rMissingChars ) )
|
||||
{
|
||||
rFontSelData.maSearchName = pFontFamily->GetSearchName();
|
||||
@ -338,7 +339,7 @@ bool WinGlyphFallbackSubstititution::FindFontSubstitute(vcl::font::FontSelectPat
|
||||
bool bFound = false;
|
||||
for( int i = 0; i < nTestFontCount; ++i )
|
||||
{
|
||||
PhysicalFontFace* pFace = pTestFontList->Get( i );
|
||||
vcl::font::PhysicalFontFace* pFace = pTestFontList->Get( i );
|
||||
bFound = HasMissingChars( pFace, rMissingChars );
|
||||
if( !bFound )
|
||||
continue;
|
||||
@ -626,7 +627,7 @@ void ImplSalLogFontToFontW( HDC hDC, const LOGFONTW& rLogFont, Font& rFont )
|
||||
|
||||
WinFontFace::WinFontFace( const FontAttributes& rDFS,
|
||||
BYTE eWinCharSet, BYTE nPitchAndFamily )
|
||||
: PhysicalFontFace( rDFS ),
|
||||
: vcl::font::PhysicalFontFace( rDFS ),
|
||||
mnId( 0 ),
|
||||
mbFontCapabilitiesRead( false ),
|
||||
meWinCharSet( eWinCharSet ),
|
||||
@ -762,7 +763,7 @@ void WinSalGraphics::SetTextColor( Color nColor )
|
||||
}
|
||||
|
||||
void ImplGetLogFontFromFontSelect( const vcl::font::FontSelectPattern& rFont,
|
||||
const PhysicalFontFace* pFontFace,
|
||||
const vcl::font::PhysicalFontFace* pFontFace,
|
||||
LOGFONTW& rLogFont )
|
||||
{
|
||||
OUString aName;
|
||||
@ -811,7 +812,7 @@ void ImplGetLogFontFromFontSelect( const vcl::font::FontSelectPattern& rFont,
|
||||
}
|
||||
|
||||
HFONT WinSalGraphics::ImplDoSetFont(vcl::font::FontSelectPattern const & i_rFont,
|
||||
const PhysicalFontFace * i_pFontFace,
|
||||
const vcl::font::PhysicalFontFace * i_pFontFace,
|
||||
HFONT& o_rOldFont)
|
||||
{
|
||||
HFONT hNewFont = nullptr;
|
||||
@ -1535,7 +1536,7 @@ SFErrCodes ScopedTrueTypeFont::open(void const * pBuffer, sal_uInt32 nLen,
|
||||
}
|
||||
|
||||
bool WinSalGraphics::CreateFontSubset( const OUString& rToFile,
|
||||
const PhysicalFontFace* pFont, const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
|
||||
const vcl::font::PhysicalFontFace* pFont, const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
|
||||
sal_Int32* pGlyphWidths, int nGlyphCount, FontSubsetInfo& rInfo )
|
||||
{
|
||||
// TODO: use more of the central font-subsetting code, move stuff there if needed
|
||||
@ -1604,7 +1605,7 @@ bool WinSalGraphics::CreateFontSubset( const OUString& rToFile,
|
||||
pEncoding, pGlyphWidths, nGlyphCount);
|
||||
}
|
||||
|
||||
const void* WinSalGraphics::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
const void* WinSalGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
|
||||
{
|
||||
// create matching FontSelectPattern
|
||||
// we need just enough to get to the font file data
|
||||
@ -1630,7 +1631,7 @@ void WinSalGraphics::FreeEmbedFontData( const void* pData, tools::Long /*nLen*/
|
||||
delete[] static_cast<char const *>(pData);
|
||||
}
|
||||
|
||||
void WinSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
|
||||
void WinSalGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
|
||||
bool bVertical,
|
||||
std::vector< sal_Int32 >& rWidths,
|
||||
Ucs2UIntMap& rUnicodeEnc )
|
||||
|
@ -163,7 +163,7 @@ struct BlobReference
|
||||
};
|
||||
}
|
||||
|
||||
using BlobCacheKey = std::pair<rtl::Reference<PhysicalFontFace>, hb_tag_t>;
|
||||
using BlobCacheKey = std::pair<rtl::Reference<vcl::font::PhysicalFontFace>, hb_tag_t>;
|
||||
|
||||
namespace
|
||||
{
|
||||
@ -189,7 +189,8 @@ static hb_blob_t* getFontTable(hb_face_t* /*face*/, hb_tag_t nTableTag, void* pU
|
||||
assert(hDC);
|
||||
assert(hFont);
|
||||
|
||||
BlobCacheKey cacheKey{ rtl::Reference<PhysicalFontFace>(pFont->GetFontFace()), nTableTag };
|
||||
BlobCacheKey cacheKey{ rtl::Reference<vcl::font::PhysicalFontFace>(pFont->GetFontFace()),
|
||||
nTableTag };
|
||||
auto it = gCache.find(cacheKey);
|
||||
if (it != gCache.end())
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user