Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: core/src/fxge/apple/apple_int.h

Issue 1800523005: Move core/src/ up to core/. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/src/fxge/android/fx_android_imp.cpp ('k') | core/src/fxge/apple/fx_apple_platform.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #ifndef CORE_SRC_FXGE_APPLE_APPLE_INT_H_
8 #define CORE_SRC_FXGE_APPLE_APPLE_INT_H_
9
10 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
11
12 #include "core/include/fxge/fx_ge.h"
13
14 #if _FX_OS_ == _FX_MACOSX_
15 #include <Carbon/Carbon.h>
16 #endif
17
18 typedef enum eFXIOSFONTCHARSET {
19 eFXFontCharsetDEFAULT = 0,
20 eFXFontCharsetANSI = 1,
21 eFXFontCharsetSYMBOL = 1 << 1,
22 eFXFontCharsetSHIFTJIS = 1 << 2,
23 eFXFontCharsetHANGEUL = 1 << 3,
24 eFXFontCharsetGB2312 = 1 << 4,
25 eFXFontCharsetCHINESEBIG5 = 1 << 5,
26 eFXFontCharsetTHAI = 1 << 6,
27 eFXFontCharsetEASTEUROPE = 1 << 7,
28 eFXFontCharsetRUSSIAN = 1 << 8,
29 eFXFontCharsetGREEK = 1 << 9,
30 eFXFontCharsetTURKISH = 1 << 10,
31 eFXFontCharsetHEBREW = 1 << 11,
32 eFXFontCharsetARABIC = 1 << 12,
33 eFXFontCharsetBALTIC = 1 << 13,
34 } FX_IOSCHARSET;
35 FX_IOSCHARSET FX_GetiOSCharset(int charset);
36 typedef enum eFXIOSFONTFLAG {
37 eFXFontFlagBold = 1,
38 eFXFontFlagItalic = 1 << 1,
39 eFXFontFlagFixedPitch = 1 << 2,
40 eFXFontFlagSerif = 1 << 3,
41 eFXFontFlagScript = 1 << 4,
42 } FX_IOSFONTFLAG;
43 typedef struct IOS_FONTDATA_ {
44 FX_DWORD nHashCode;
45 const char* psName;
46 FX_DWORD charsets;
47 FX_DWORD styles;
48 } IOS_FONTDATA;
49 class CQuartz2D {
50 public:
51 void* createGraphics(CFX_DIBitmap* bitmap);
52 void destroyGraphics(void* graphics);
53
54 void* CreateFont(const uint8_t* pFontData, FX_DWORD dwFontSize);
55 void DestroyFont(void* pFont);
56 void setGraphicsTextMatrix(void* graphics, CFX_Matrix* matrix);
57 FX_BOOL drawGraphicsString(void* graphics,
58 void* font,
59 FX_FLOAT fontSize,
60 FX_WORD* glyphIndices,
61 CGPoint* glyphPositions,
62 int32_t chars,
63 FX_ARGB argb,
64 CFX_Matrix* matrix = NULL);
65 void saveGraphicsState(void* graphics);
66 void restoreGraphicsState(void* graphics);
67 };
68 class CApplePlatform {
69 public:
70 CApplePlatform() {}
71 ~CApplePlatform() {}
72
73 CQuartz2D _quartz2d;
74 };
75
76 class CFX_QuartzDeviceDriver : public IFX_RenderDeviceDriver {
77 public:
78 CFX_QuartzDeviceDriver(CGContextRef context, int32_t deviceClass);
79 ~CFX_QuartzDeviceDriver() override;
80
81 // IFX_RenderDeviceDriver
82 int GetDeviceCaps(int caps_id) override;
83 CFX_Matrix GetCTM() const override;
84 FX_BOOL IsPSPrintDriver() override { return FALSE; }
85 FX_BOOL StartRendering() override { return TRUE; }
86 void EndRendering() override {}
87 void SaveState() override;
88 void RestoreState(FX_BOOL bKeepSaved) override;
89 FX_BOOL SetClip_PathFill(const CFX_PathData* pPathData,
90 const CFX_Matrix* pObject2Device,
91 int fill_mode) override;
92 FX_BOOL SetClip_PathStroke(const CFX_PathData* pPathData,
93 const CFX_Matrix* pObject2Device,
94 const CFX_GraphStateData* pGraphState) override;
95 FX_BOOL DrawPath(const CFX_PathData* pPathData,
96 const CFX_Matrix* pObject2Device,
97 const CFX_GraphStateData* pGraphState,
98 FX_DWORD fill_color,
99 FX_DWORD stroke_color,
100 int fill_mode,
101 int alpha_flag = 0,
102 void* pIccTransform = NULL,
103 int blend_type = FXDIB_BLEND_NORMAL) override;
104 FX_BOOL SetPixel(int x,
105 int y,
106 FX_DWORD color,
107 int alpha_flag = 0,
108 void* pIccTransform = NULL) override {
109 return FALSE;
110 }
111 FX_BOOL FillRect(const FX_RECT* pRect,
112 FX_DWORD fill_color,
113 int alpha_flag = 0,
114 void* pIccTransform = NULL,
115 int blend_type = FXDIB_BLEND_NORMAL) override;
116 FX_BOOL DrawCosmeticLine(FX_FLOAT x1,
117 FX_FLOAT y1,
118 FX_FLOAT x2,
119 FX_FLOAT y2,
120 FX_DWORD color,
121 int alpha_flag = 0,
122 void* pIccTransform = NULL,
123 int blend_type = FXDIB_BLEND_NORMAL) override;
124 FX_BOOL GetClipBox(FX_RECT* pRect) override;
125 FX_BOOL GetDIBits(CFX_DIBitmap* pBitmap,
126 int left,
127 int top,
128 void* pIccTransform = NULL,
129 FX_BOOL bDEdge = FALSE) override;
130 CFX_DIBitmap* GetBackDrop() override { return NULL; }
131 FX_BOOL SetDIBits(const CFX_DIBSource* pBitmap,
132 FX_DWORD color,
133 const FX_RECT* pSrcRect,
134 int dest_left,
135 int dest_top,
136 int blend_type,
137 int alpha_flag = 0,
138 void* pIccTransform = NULL) override;
139 FX_BOOL StretchDIBits(const CFX_DIBSource* pBitmap,
140 FX_DWORD color,
141 int dest_left,
142 int dest_top,
143 int dest_width,
144 int dest_height,
145 const FX_RECT* pClipRect,
146 FX_DWORD flags,
147 int alpha_flag = 0,
148 void* pIccTransform = NULL,
149 int blend_type = FXDIB_BLEND_NORMAL) override;
150 FX_BOOL StartDIBits(const CFX_DIBSource* pBitmap,
151 int bitmap_alpha,
152 FX_DWORD color,
153 const CFX_Matrix* pMatrix,
154 FX_DWORD flags,
155 void*& handle,
156 int alpha_flag = 0,
157 void* pIccTransform = NULL,
158 int blend_type = FXDIB_BLEND_NORMAL) override {
159 return FALSE;
160 }
161 FX_BOOL ContinueDIBits(void* handle, IFX_Pause* pPause) override {
162 return FALSE;
163 }
164 void CancelDIBits(void* handle) override {}
165 FX_BOOL DrawDeviceText(int nChars,
166 const FXTEXT_CHARPOS* pCharPos,
167 CFX_Font* pFont,
168 CFX_FontCache* pCache,
169 const CFX_Matrix* pObject2Device,
170 FX_FLOAT font_size,
171 FX_DWORD color,
172 int alpha_flag = 0,
173 void* pIccTransform = NULL) override;
174 void* GetPlatformSurface() override { return NULL; }
175 void ClearDriver() override;
176
177 protected:
178 void setStrokeInfo(const CFX_GraphStateData* graphState,
179 FX_ARGB argb,
180 FX_FLOAT lineWidth);
181 void setFillInfo(FX_ARGB argb);
182 void setPathToContext(const CFX_PathData* pathData);
183 FX_FLOAT getLineWidth(const CFX_GraphStateData* graphState,
184 CGAffineTransform ctm);
185 FX_BOOL CG_DrawGlypRun(int nChars,
186 const FXTEXT_CHARPOS* pCharPos,
187 CFX_Font* pFont,
188 CFX_FontCache* pCache,
189 const CFX_Matrix* pGlyphMatrix,
190 const CFX_Matrix* pObject2Device,
191 FX_FLOAT font_size,
192 FX_DWORD argb,
193 int alpha_flag,
194 void* pIccTransform);
195 void CG_SetImageTransform(int dest_left,
196 int dest_top,
197 int dest_width,
198 int dest_height,
199 CGRect* rect = NULL);
200
201 protected:
202 CGContextRef _context;
203 CGAffineTransform _foxitDevice2User;
204 CGAffineTransform _user2FoxitDevice;
205 int32_t m_saveCount;
206
207 int32_t _width;
208 int32_t _height;
209 int32_t _bitsPerPixel;
210 int32_t _deviceClass;
211 int32_t _renderCaps;
212 int32_t _horzSize;
213 int32_t _vertSize;
214 };
215
216 class CFX_FontProvider final : public IFX_FileRead {
217 public:
218 // IFX_FileRead
219 void Release() override { delete this; }
220 FX_FILESIZE GetSize() override { return (FX_FILESIZE)_totalSize; }
221 FX_BOOL IsEOF() override { return _offSet == _totalSize; }
222 FX_FILESIZE GetPosition() override { return (FX_FILESIZE)_offSet; }
223 FX_BOOL ReadBlock(void* buffer, FX_FILESIZE offset, size_t size) override;
224 size_t ReadBlock(void* buffer, size_t size) override;
225
226 public:
227 CFX_FontProvider(CGFontRef cgFont);
228 ~CFX_FontProvider() override;
229 void InitTableOffset();
230 unsigned long Read(unsigned long offset,
231 unsigned char* buffer,
232 unsigned long count);
233
234 protected:
235 uint32_t CalcTableCheckSum(const uint32_t* table,
236 uint32_t numberOfBytesInTable);
237 uint32_t CalcTableDataRefCheckSum(CFDataRef dataRef);
238
239 private:
240 CGFontRef m_cgFont;
241 UInt32 m_iTableSize;
242 size_t _offSet;
243 typedef struct FontHeader {
244 int32_t fVersion;
245 uint16_t fNumTables;
246 uint16_t fSearchRange;
247 uint16_t fEntrySelector;
248 uint16_t fRangeShift;
249 } FontHeader;
250 typedef struct TableEntry {
251 uint32_t fTag;
252 uint32_t fCheckSum;
253 uint32_t fOffset;
254 uint32_t fLength;
255 } TableEntry;
256 FontHeader _fontHeader;
257 unsigned char* _tableEntries;
258 size_t* _tableOffsets;
259 int _tableCount;
260 int _totalSize;
261 };
262
263 uint32_t FX_GetHashCode(const FX_CHAR* pStr);
264 FX_DWORD FX_IOSGetMatchFamilyNameHashcode(const FX_CHAR* pFontName);
265 uint32_t FX_IOSGetFamilyNamesCount();
266 const FX_CHAR* FX_IOSGetFamilyName(uint32_t uIndex);
267 #endif
268
269 #endif // CORE_SRC_FXGE_APPLE_APPLE_INT_H_
OLDNEW
« no previous file with comments | « core/src/fxge/android/fx_android_imp.cpp ('k') | core/src/fxge/apple/fx_apple_platform.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698