Example #1
0
CFX_FontMapper::~CFX_FontMapper() {
  for (size_t i = 0; i < FX_ArraySize(m_FoxitFaces); ++i) {
    if (m_FoxitFaces[i])
      FXFT_Done_Face(m_FoxitFaces[i]);
  }
  if (m_MMFaces[0])
    FXFT_Done_Face(m_MMFaces[0]);
  if (m_MMFaces[1])
    FXFT_Done_Face(m_MMFaces[1]);
}
Example #2
0
CTTFontDesc::~CTTFontDesc() {
    if (m_Type == 1) {
        if (m_SingleFace)
            FXFT_Done_Face(m_SingleFace);
    } else if (m_Type == 2) {
        for (int i = 0; i < 16; i++) {
            if (m_TTCFaces[i])
                FXFT_Done_Face(m_TTCFaces[i]);
        }
    }
    FX_Free(m_pFontData);
}
Example #3
0
CFX_FontMapper::~CFX_FontMapper()
{
    for (int i = 0; i < 14; i ++)
        if (m_FoxitFaces[i]) {
            FXFT_Done_Face(m_FoxitFaces[i]);
        }
    if (m_MMFaces[0]) {
        FXFT_Done_Face(m_MMFaces[0]);
    }
    if (m_MMFaces[1]) {
        FXFT_Done_Face(m_MMFaces[1]);
    }
    if (m_pFontInfo) {
        m_pFontInfo->Release();
    }
}
Example #4
0
CFontFileFaceInfo::~CFontFileFaceInfo()
{
    if (m_Face) {
        FXFT_Done_Face(m_Face);
    }
    m_Face = NULL;
}
Example #5
0
void CFPF_SkiaFontMgr::ScanFile(const CFX_ByteString& file) {
  FXFT_Face face = GetFontFace(file.AsStringC());
  if (face) {
    CFPF_SkiaPathFont* pFontDesc = new CFPF_SkiaPathFont;
    pFontDesc->SetPath(file.c_str());
    ReportFace(face, pFontDesc);
    m_FontFaces.push_back(pFontDesc);
    FXFT_Done_Face(face);
  }
}
void CFPF_SkiaFontMgr::ScanFile(FX_BSTR file)
{
    FXFT_Face face = GetFontFace(file);
    if (face) {
        CFPF_SkiaPathFont *pFontDesc = new CFPF_SkiaPathFont;
        pFontDesc->SetPath(file.GetCStr());
        ReportFace(face, pFontDesc);
        m_FontFaces.Add(pFontDesc);
        FXFT_Done_Face(face);
    }
}
FX_BOOL CFGAS_FontMgrImp::VerifyUnicode(CFX_FontDescriptor* pDesc,
                                        FX_WCHAR wcUnicode) {
  IFX_FileRead* pFileRead = CreateFontStream(pDesc->m_wsFaceName.UTF8Encode());
  if (!pFileRead)
    return FALSE;
  FXFT_Face pFace = LoadFace(pFileRead, pDesc->m_nFaceIndex);
  FT_Error retCharmap = FXFT_Select_Charmap(pFace, FXFT_ENCODING_UNICODE);
  FT_Error retIndex = FXFT_Get_Char_Index(pFace, wcUnicode);
  pFileRead->Release();
  if (!pFace)
    return FALSE;
  if (FXFT_Get_Face_External_Stream(pFace))
    FXFT_Clear_Face_External_Stream(pFace);
  FXFT_Done_Face(pFace);
  return !retCharmap && retIndex;
}
Example #8
0
void CFGAS_FontMgr::RegisterFaces(IFX_SeekableReadStream* pFontStream,
                                  const CFX_WideString* pFaceName) {
  int32_t index = 0;
  int32_t num_faces = 0;
  do {
    FXFT_Face pFace = LoadFace(pFontStream, index++);
    if (!pFace)
      continue;
    // All faces keep number of faces. It can be retrieved from any one face.
    if (num_faces == 0)
      num_faces = pFace->num_faces;
    RegisterFace(pFace, pFaceName);
    if (FXFT_Get_Face_External_Stream(pFace))
      FXFT_Clear_Face_External_Stream(pFace);
    FXFT_Done_Face(pFace);
  } while (index < num_faces);
}
Example #9
0
void CFX_FontMgr::ReleaseFace(FXFT_Face face) {
  if (!face)
    return;
  FX_BOOL bNeedFaceDone = TRUE;
  auto it = m_FaceMap.begin();
  while (it != m_FaceMap.end()) {
    auto temp = it++;
    int nRet = temp->second->ReleaseFace(face);
    if (nRet == -1)
      continue;
    bNeedFaceDone = FALSE;
    if (nRet == 0)
      m_FaceMap.erase(temp);
    break;
  }
  if (bNeedFaceDone && !m_pBuiltinMapper->IsBuiltinFace(face))
    FXFT_Done_Face(face);
}
Example #10
0
void CFX_Font::DeleteFace()
{
    FXFT_Done_Face(m_Face);
    m_Face = NULL;
}
Example #11
0
CFPF_SkiaFont::~CFPF_SkiaFont()
{
    if (m_Face) {
        FXFT_Done_Face(m_Face);
    }
}