//======================================================================== // // SplashFTFontEngine.h // //======================================================================== //======================================================================== // // Modified under the Poppler project - http://poppler.freedesktop.org // // All changes made under the Poppler project to this file are licensed // under GPL version 2 or later // // Copyright (C) 2006 Takashi Iwai // Copyright (C) 2009 Petr Gajdos // Copyright (C) 2009, 2018, 2022, 2024 Albert Astals Cid // Copyright (C) 2011 Andreas Hartmetz // Copyright (C) 2013 Thomas Freitag // Copyright (C) 2017 Adrian Johnson // Copyright (C) 2024 g10 Code GmbH, Author: Sune Stolborg Vuorela // // To see a description of the changes please see the Changelog file that // came with your tarball or type make ChangeLog if you are building from git // //======================================================================== #ifndef SPLASHFTFONTENGINE_H #define SPLASHFTFONTENGINE_H #include #include FT_FREETYPE_H #include class SplashFontFile; class SplashFontFileID; class SplashFontSrc; //------------------------------------------------------------------------ // SplashFTFontEngine //------------------------------------------------------------------------ class SplashFTFontEngine { public: static SplashFTFontEngine *init(bool aaA, bool enableFreeTypeHintingA, bool enableSlightHinting); ~SplashFTFontEngine(); SplashFTFontEngine(const SplashFTFontEngine &) = delete; SplashFTFontEngine &operator=(const SplashFTFontEngine &) = delete; // Load fonts. SplashFontFile *loadType1Font(std::unique_ptr idA, SplashFontSrc *src, const char **enc, int faceIndex); SplashFontFile *loadType1CFont(std::unique_ptr idA, SplashFontSrc *src, const char **enc, int faceIndex); SplashFontFile *loadOpenTypeT1CFont(std::unique_ptr idA, SplashFontSrc *src, const char **enc, int faceIndex); SplashFontFile *loadCIDFont(std::unique_ptr idA, SplashFontSrc *src, int faceIndex); SplashFontFile *loadOpenTypeCFFFont(std::unique_ptr idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen, int faceIndex); SplashFontFile *loadTrueTypeFont(std::unique_ptr idA, SplashFontSrc *src, int *codeToGID, int codeToGIDLen, int faceIndex); bool getAA() { return aa; } void setAA(bool aaA) { aa = aaA; } private: SplashFTFontEngine(bool aaA, bool enableFreeTypeHintingA, bool enableSlightHintingA, FT_Library libA); bool aa; bool enableFreeTypeHinting; bool enableSlightHinting; FT_Library lib; friend class SplashFTFontFile; friend class SplashFTFont; }; #endif