summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-0.20.2/poppler/CairoFontEngine.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/poppler/poppler-0.20.2/poppler/CairoFontEngine.h')
-rw-r--r--Build/source/libs/poppler/poppler-0.20.2/poppler/CairoFontEngine.h124
1 files changed, 124 insertions, 0 deletions
diff --git a/Build/source/libs/poppler/poppler-0.20.2/poppler/CairoFontEngine.h b/Build/source/libs/poppler/poppler-0.20.2/poppler/CairoFontEngine.h
new file mode 100644
index 00000000000..63353489f2c
--- /dev/null
+++ b/Build/source/libs/poppler/poppler-0.20.2/poppler/CairoFontEngine.h
@@ -0,0 +1,124 @@
+//========================================================================
+//
+// CairoFontEngine.h
+//
+// Copyright 2003 Glyph & Cog, LLC
+// Copyright 2004 Red Hat, Inc
+//
+//========================================================================
+
+//========================================================================
+//
+// 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) 2005, 2006 Kristian Høgsberg <krh@redhat.com>
+// Copyright (C) 2005 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2006, 2007 Jeff Muizelaar <jeff@infidigm.net>
+// Copyright (C) 2006, 2010 Carlos Garcia Campos <carlosgc@gnome.org>
+// Copyright (C) 2008 Adrian Johnson <ajohnson@redneon.com>
+//
+// 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 CAIROFONTENGINE_H
+#define CAIROFONTENGINE_H
+
+#ifdef USE_GCC_PRAGMAS
+#pragma interface
+#endif
+
+#include "goo/gtypes.h"
+#include <cairo-ft.h>
+
+#include "GfxFont.h"
+#include "PDFDoc.h"
+
+class CairoFontEngine;
+
+class CairoFont {
+public:
+ CairoFont(Ref ref,
+ cairo_font_face_t *face,
+ int *codeToGID,
+ Guint codeToGIDLen,
+ GBool substitute,
+ GBool printing);
+ virtual ~CairoFont();
+
+ virtual GBool matches(Ref &other, GBool printing);
+ cairo_font_face_t *getFontFace(void);
+ unsigned long getGlyph(CharCode code, Unicode *u, int uLen);
+ double getSubstitutionCorrection(GfxFont *gfxFont);
+
+ GBool isSubstitute() { return substitute; }
+protected:
+ Ref ref;
+ cairo_font_face_t *cairo_font_face;
+
+ int *codeToGID;
+ Guint codeToGIDLen;
+
+ GBool substitute;
+ GBool printing;
+};
+
+//------------------------------------------------------------------------
+
+class CairoFreeTypeFont : public CairoFont {
+public:
+ static CairoFreeTypeFont *create(GfxFont *gfxFont, XRef *xref, FT_Library lib, GBool useCIDs);
+ virtual ~CairoFreeTypeFont();
+
+private:
+ CairoFreeTypeFont(Ref ref, cairo_font_face_t *cairo_font_face,
+ int *codeToGID, Guint codeToGIDLen, GBool substitute);
+};
+
+//------------------------------------------------------------------------
+
+class CairoType3Font : public CairoFont {
+public:
+ static CairoType3Font *create(GfxFont *gfxFont, PDFDoc *doc,
+ CairoFontEngine *fontEngine,
+ GBool printing);
+ virtual ~CairoType3Font();
+
+ virtual GBool matches(Ref &other, GBool printing);
+
+private:
+ CairoType3Font(Ref ref, PDFDoc *doc,
+ cairo_font_face_t *cairo_font_face,
+ int *codeToGID, Guint codeToGIDLen,
+ GBool printing);
+ PDFDoc *doc;
+};
+
+//------------------------------------------------------------------------
+
+#define cairoFontCacheSize 64
+
+//------------------------------------------------------------------------
+// CairoFontEngine
+//------------------------------------------------------------------------
+
+class CairoFontEngine {
+public:
+
+ // Create a font engine.
+ CairoFontEngine(FT_Library libA);
+ ~CairoFontEngine();
+
+ CairoFont *getFont(GfxFont *gfxFont, PDFDoc *doc, GBool printing);
+
+private:
+ CairoFont *fontCache[cairoFontCacheSize];
+ FT_Library lib;
+ GBool useCIDs;
+};
+
+#endif