https://bugs.webkit.org/show_bug.cgi?id=48540, support the text-orientation CSS property.
[WebKit-https.git] / Source / WebCore / platform / graphics / cairo / FontCustomPlatformData.h
1 /*
2  * Copyright (C) 2008 Alp Toker <alp@atoker.com>
3  * Copyright (C) 2010 Igalia S.L.
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Library General Public
7  * License as published by the Free Software Foundation; either
8  * version 2 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  * Library General Public License for more details.
14  *
15  * You should have received a copy of the GNU Library General Public License
16  * along with this library; see the file COPYING.LIB.  If not, write to
17  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  * Boston, MA 02110-1301, USA.
19  *
20  */
21
22 #ifndef FontCustomPlatformData_h
23 #define FontCustomPlatformData_h
24
25 #include "FontOrientation.h"
26 #include "FontRenderingMode.h"
27 #include "FontWidthVariant.h"
28 #include "TextOrientation.h"
29 #include <wtf/Forward.h>
30 #include <wtf/Noncopyable.h>
31
32 typedef struct FT_FaceRec_*  FT_Face;
33 typedef struct _cairo_font_face cairo_font_face_t;
34
35 namespace WebCore {
36
37 class FontPlatformData;
38 class SharedBuffer;
39
40 struct FontCustomPlatformData {
41     WTF_MAKE_NONCOPYABLE(FontCustomPlatformData);
42 public:
43     FontCustomPlatformData(FT_Face, SharedBuffer*);
44     ~FontCustomPlatformData();
45     FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation = Horizontal, TextOrientation = TextOrientationVerticalRight, FontWidthVariant = RegularWidth, FontRenderingMode = NormalRenderingMode);
46     static bool supportsFormat(const String&);
47
48 private:
49     FT_Face m_freeTypeFace;
50     cairo_font_face_t* m_fontFace;
51 };
52
53 FontCustomPlatformData* createFontCustomPlatformData(SharedBuffer* buffer);
54
55 }
56
57 #endif