mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-07-11 13:03:11 +08:00
48 lines
2.1 KiB
C++
48 lines
2.1 KiB
C++
#ifndef _SFONT_ENGINE_H
|
|
#define _SFONT_ENGINE_H
|
|
|
|
class SGlyphLibFontEngine;
|
|
class SFontFile;
|
|
class SFontFileID;
|
|
class SFont;
|
|
|
|
//-------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
#define sfontCacheSize 16
|
|
|
|
//-------------------------------------------------------------------------------------------------------------------------------
|
|
// SFontEngine
|
|
//-------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
class SFontEngine
|
|
{
|
|
public:
|
|
|
|
SFontEngine(BOOL bEnableGlyphLibrary, BOOL bAntiAliasing );
|
|
|
|
~SFontEngine();
|
|
|
|
// Ïîëó÷àåì FontFile èç êýøà. Ôóíêöèÿ âîçâðàùàåò NULL, åñëè â êýøå íåò ñîîòâåòñòâóþùåãî FontFile.
|
|
SFontFile *GetFontFile(SFontFileID *pFontFileID);
|
|
|
|
// Çàãðóæàåì Font, ïðè ýòîì ñîçäàåòñÿ íîâûé îáúåêò SFontFile.
|
|
SFontFile *LoadType1Font (SFontFileID *pFontFileID, wchar_t *wsFileName, BOOL bDeleteFile, char **ppEncoding);
|
|
SFontFile *LoadType1CFont (SFontFileID *pFontFileID, wchar_t *wsFileName, BOOL bDeleteFile, char **ppEncoding);
|
|
SFontFile *LoadOpenTypeT1CFont(SFontFileID *pFontFileID, wchar_t *wsFileName, BOOL bDeleteFile, char **ppEncoding);
|
|
SFontFile *LoadCIDFont (SFontFileID *pFontFileID, wchar_t *wsFileName, BOOL bDeleteFile);
|
|
SFontFile *LoadOpenTypeCFFFont(SFontFileID *pFontFileID, wchar_t *wsFileName, BOOL bDeleteFile);
|
|
SFontFile *LoadTrueTypeFont (SFontFileID *pFontFileID, wchar_t *wsFileName, BOOL bDeleteFile, unsigned short *pCodeToGID, int nCodeToGIDLen, wchar_t *wsTempFolder);
|
|
|
|
// Ôóíêöèÿ âîçâðàùàåò Font ïî äàííîìó FontFile: ñíà÷àëà èùåì ôîíò â êýøå, è åñëè Font íå íàéäåí, òîãäà ñîçäàåì íîâûé îáúåêò
|
|
// SFont è äîáàâëÿåì åãî â êýø. Ïðè ýòîì FontMatrix = TextMat * CTM: [ FontMatrix[0] FontMatrix[1] ]
|
|
// [ FontMatrix[2] FontMatrix[3] ].
|
|
SFont *GetFont(SFontFile *pFontFile, double *pTextMatrix, double *pCTM);
|
|
|
|
private:
|
|
|
|
SFont *m_pFontCache[sfontCacheSize];
|
|
SGlyphLibFontEngine *m_pGlyphLibEngine;
|
|
};
|
|
|
|
#endif /* _SFONT_ENGINE_H */
|