![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/thread-self/root/usr/share/emscripten/tests/poppler/splash/ |
Upload File : |
//======================================================================== // // SplashFTFontFile.cc // //======================================================================== //======================================================================== // // 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 <tiwai@suse.de> // // 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 // //======================================================================== #include <config.h> #if HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H #ifdef USE_GCC_PRAGMAS #pragma implementation #endif #include "goo/gmem.h" #include "goo/GooString.h" #include "SplashFTFontEngine.h" #include "SplashFTFont.h" #include "SplashFTFontFile.h" //------------------------------------------------------------------------ // SplashFTFontFile //------------------------------------------------------------------------ SplashFontFile *SplashFTFontFile::loadType1Font(SplashFTFontEngine *engineA, SplashFontFileID *idA, SplashFontSrc *src, char **encA) { FT_Face faceA; Gushort *codeToGIDA; char *name; int i; if (src->isFile) { if (FT_New_Face(engineA->lib, src->fileName->getCString(), 0, &faceA)) return NULL; } else { if (FT_New_Memory_Face(engineA->lib, (const FT_Byte *)src->buf, src->bufLen, 0, &faceA)) return NULL; } codeToGIDA = (Gushort *)gmallocn(256, sizeof(int)); for (i = 0; i < 256; ++i) { codeToGIDA[i] = 0; if ((name = encA[i])) { codeToGIDA[i] = (Gushort)FT_Get_Name_Index(faceA, name); } } return new SplashFTFontFile(engineA, idA, src, faceA, codeToGIDA, 256, gFalse); } SplashFontFile *SplashFTFontFile::loadCIDFont(SplashFTFontEngine *engineA, SplashFontFileID *idA, SplashFontSrc *src, Gushort *codeToGIDA, int codeToGIDLenA) { FT_Face faceA; if (src->isFile) { if (FT_New_Face(engineA->lib, src->fileName->getCString(), 0, &faceA)) return NULL; } else { if (FT_New_Memory_Face(engineA->lib, (const FT_Byte *)src->buf, src->bufLen, 0, &faceA)) return NULL; } return new SplashFTFontFile(engineA, idA, src, faceA, codeToGIDA, codeToGIDLenA, gFalse); } SplashFontFile *SplashFTFontFile::loadTrueTypeFont(SplashFTFontEngine *engineA, SplashFontFileID *idA, SplashFontSrc *src, Gushort *codeToGIDA, int codeToGIDLenA, int faceIndexA) { FT_Face faceA; if (src->isFile) { if (FT_New_Face(engineA->lib, src->fileName->getCString(), faceIndexA, &faceA)) return NULL; } else { if (FT_New_Memory_Face(engineA->lib, (const FT_Byte *)src->buf, src->bufLen, faceIndexA, &faceA)) return NULL; } return new SplashFTFontFile(engineA, idA, src, faceA, codeToGIDA, codeToGIDLenA, gTrue); } SplashFTFontFile::SplashFTFontFile(SplashFTFontEngine *engineA, SplashFontFileID *idA, SplashFontSrc *src, FT_Face faceA, Gushort *codeToGIDA, int codeToGIDLenA, GBool trueTypeA): SplashFontFile(idA, src) { engine = engineA; face = faceA; codeToGID = codeToGIDA; codeToGIDLen = codeToGIDLenA; trueType = trueTypeA; } SplashFTFontFile::~SplashFTFontFile() { if (face) { FT_Done_Face(face); } if (codeToGID) { gfree(codeToGID); } } SplashFont *SplashFTFontFile::makeFont(SplashCoord *mat, SplashCoord *textMat) { SplashFont *font; font = new SplashFTFont(this, mat, textMat); font->initCache(); return font; } #endif // HAVE_FREETYPE_FREETYPE_H || HAVE_FREETYPE_H