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

Side by Side Diff: src/pdf/SkPDFDevice.h

Issue 1837453003: SkPDF: remove margin foolishness (Closed) Base URL: https://skia.googlesource.com/skia.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 | « no previous file | src/pdf/SkPDFDevice.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkPDFDevice_DEFINED 8 #ifndef SkPDFDevice_DEFINED
9 #define SkPDFDevice_DEFINED 9 #define SkPDFDevice_DEFINED
10 10
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 const SkPoint texs[], const SkColor colors[], 124 const SkPoint texs[], const SkColor colors[],
125 SkXfermode* xmode, const uint16_t indices[], 125 SkXfermode* xmode, const uint16_t indices[],
126 int indexCount, const SkPaint& paint) override; 126 int indexCount, const SkPaint& paint) override;
127 void drawDevice(const SkDraw&, SkBaseDevice*, int x, int y, 127 void drawDevice(const SkDraw&, SkBaseDevice*, int x, int y,
128 const SkPaint&) override; 128 const SkPaint&) override;
129 129
130 void onAttachToCanvas(SkCanvas* canvas) override; 130 void onAttachToCanvas(SkCanvas* canvas) override;
131 void onDetachFromCanvas() override; 131 void onDetachFromCanvas() override;
132 SkImageInfo imageInfo() const override; 132 SkImageInfo imageInfo() const override;
133 133
134 enum DrawingArea {
135 kContent_DrawingArea, // Drawing area for the page content.
136 kMargin_DrawingArea, // Drawing area for the margin content.
137 };
138
139 /** Sets the drawing area for the device. Subsequent draw calls are directed
140 * to the specific drawing area (margin or content). The default drawing
141 * area is the content drawing area.
142 *
143 * Currently if margin content is drawn and then a complex (for PDF) xfer
144 * mode is used, like SrcIn, Clear, etc, the margin content will get
145 * clipped. A simple way to avoid the bug is to always draw the margin
146 * content last.
147 */
148 void setDrawingArea(DrawingArea drawingArea);
149
150 // PDF specific methods. 134 // PDF specific methods.
151 135
152 /** Create the resource dictionary for this device. */ 136 /** Create the resource dictionary for this device. */
153 sk_sp<SkPDFDict> makeResourceDict() const; 137 sk_sp<SkPDFDict> makeResourceDict() const;
154 138
155 /** Get the fonts used on this device. 139 /** Get the fonts used on this device.
156 */ 140 */
157 const SkTDArray<SkPDFFont*>& getFontResources() const; 141 const SkTDArray<SkPDFFont*>& getFontResources() const;
158 142
159 /** Add our annotations (link to urls and destinations) to the supplied 143 /** Add our annotations (link to urls and destinations) to the supplied
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 SkTArray<RectWithData> fLinkToDestinations; 227 SkTArray<RectWithData> fLinkToDestinations;
244 SkTArray<NamedDestination> fNamedDestinations; 228 SkTArray<NamedDestination> fNamedDestinations;
245 229
246 SkTDArray<SkPDFObject*> fGraphicStateResources; 230 SkTDArray<SkPDFObject*> fGraphicStateResources;
247 SkTDArray<SkPDFObject*> fXObjectResources; 231 SkTDArray<SkPDFObject*> fXObjectResources;
248 SkTDArray<SkPDFFont*> fFontResources; 232 SkTDArray<SkPDFFont*> fFontResources;
249 SkTDArray<SkPDFObject*> fShaderResources; 233 SkTDArray<SkPDFObject*> fShaderResources;
250 234
251 SkAutoTDelete<ContentEntry> fContentEntries; 235 SkAutoTDelete<ContentEntry> fContentEntries;
252 ContentEntry* fLastContentEntry; 236 ContentEntry* fLastContentEntry;
253 SkAutoTDelete<ContentEntry> fMarginContentEntries;
254 ContentEntry* fLastMarginContentEntry;
255 DrawingArea fDrawingArea;
256 237
257 const SkClipStack* fClipStack; 238 const SkClipStack* fClipStack;
258 239
259 // Accessor and setter functions based on the current DrawingArea.
260 SkAutoTDelete<ContentEntry>* getContentEntries();
261
262 // Glyph ids used for each font on this device. 240 // Glyph ids used for each font on this device.
263 SkAutoTDelete<SkPDFGlyphSetMap> fFontGlyphUsage; 241 SkAutoTDelete<SkPDFGlyphSetMap> fFontGlyphUsage;
264 242
265 SkScalar fRasterDpi; 243 SkScalar fRasterDpi;
266 244
267 SkBitmap fLegacyBitmap; 245 SkBitmap fLegacyBitmap;
268 246
269 SkPDFDocument* fDocument; 247 SkPDFDocument* fDocument;
270 //////////////////////////////////////////////////////////////////////////// 248 ////////////////////////////////////////////////////////////////////////////
271 249
272 SkPDFDevice(SkISize pageSize, 250 SkPDFDevice(SkISize pageSize,
273 SkScalar rasterDpi, 251 SkScalar rasterDpi,
274 SkPDFDocument* doc, 252 SkPDFDocument* doc,
275 bool flip); 253 bool flip);
276 254
277 ContentEntry* getLastContentEntry();
278 void setLastContentEntry(ContentEntry* contentEntry);
279
280 SkBaseDevice* onCreateDevice(const CreateInfo&, const SkPaint*) override; 255 SkBaseDevice* onCreateDevice(const CreateInfo&, const SkPaint*) override;
281 256
282 void init(); 257 void init();
283 void cleanUp(bool clearFontUsage); 258 void cleanUp(bool clearFontUsage);
284 SkPDFFormXObject* createFormXObjectFromDevice(); 259 SkPDFFormXObject* createFormXObjectFromDevice();
285 260
286 void drawFormXObjectWithMask(int xObjectIndex, 261 void drawFormXObjectWithMask(int xObjectIndex,
287 SkPDFFormXObject* mask, 262 SkPDFFormXObject* mask,
288 const SkClipStack* clipStack, 263 const SkClipStack* clipStack,
289 const SkRegion& clipRegion, 264 const SkRegion& clipRegion,
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 313
339 typedef SkBaseDevice INHERITED; 314 typedef SkBaseDevice INHERITED;
340 315
341 // TODO(edisonn): Only SkDocument_PDF and SkPDFImageShader should be able to create 316 // TODO(edisonn): Only SkDocument_PDF and SkPDFImageShader should be able to create
342 // an SkPDFDevice 317 // an SkPDFDevice
343 //friend class SkDocument_PDF; 318 //friend class SkDocument_PDF;
344 //friend class SkPDFImageShader; 319 //friend class SkPDFImageShader;
345 }; 320 };
346 321
347 #endif 322 #endif
OLDNEW
« no previous file with comments | « no previous file | src/pdf/SkPDFDevice.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698