blob: 6c74eae187ab64fe3782ce0fa028de492f371626 [file] [log] [blame]
// Copyright 2019 The PDFium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CORE_FXGE_CFX_FACE_H_
#define CORE_FXGE_CFX_FACE_H_
#include "core/fxcrt/observed_ptr.h"
#include "core/fxcrt/retain_ptr.h"
#include "core/fxge/freetype/fx_freetype.h"
#include "third_party/base/containers/span.h"
class CFX_Face final : public Retainable, public Observable {
public:
static RetainPtr<CFX_Face> New(FT_Library library,
RetainPtr<Retainable> pDesc,
pdfium::span<const FT_Byte> data,
FT_Long face_index);
static RetainPtr<CFX_Face> Open(FT_Library library,
const FT_Open_Args* args,
FT_Long face_index);
~CFX_Face() override;
FXFT_FaceRec* GetRec() { return m_pRec.get(); }
private:
CFX_Face(FXFT_FaceRec* pRec, RetainPtr<Retainable> pDesc);
ScopedFXFTFaceRec const m_pRec;
RetainPtr<Retainable> const m_pDesc;
};
#endif // CORE_FXGE_CFX_FACE_H_