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

Side by Side Diff: include/core/SkDevice.h

Issue 723743002: move to modify onCreateDevice virtual (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 1 month 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 | « include/core/SkBitmapDevice.h ('k') | include/pdf/SkPDFDevice.h » ('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 2010 The Android Open Source Project 2 * Copyright 2010 The Android Open Source Project
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 SkDevice_DEFINED 8 #ifndef SkDevice_DEFINED
9 #define SkDevice_DEFINED 9 #define SkDevice_DEFINED
10 10
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 * if all rendering has been done. If false is returned, SkCanvas will 333 * if all rendering has been done. If false is returned, SkCanvas will
334 * perform its own rendering pass. It is acceptable for the backend 334 * perform its own rendering pass. It is acceptable for the backend
335 * to perform some device-specific warm up tasks and then let SkCanvas 335 * to perform some device-specific warm up tasks and then let SkCanvas
336 * perform the main rendering loop (by return false from here). 336 * perform the main rendering loop (by return false from here).
337 */ 337 */
338 virtual bool EXPERIMENTAL_drawPicture(SkCanvas*, const SkPicture*, const SkM atrix*, 338 virtual bool EXPERIMENTAL_drawPicture(SkCanvas*, const SkPicture*, const SkM atrix*,
339 const SkPaint*); 339 const SkPaint*);
340 340
341 void setPixelGeometry(SkPixelGeometry geo); 341 void setPixelGeometry(SkPixelGeometry geo);
342 342
343 struct CreateInfo {
344 CreateInfo(const SkImageInfo& info, Usage usage) : fInfo(info), fUsage(u sage) {}
345
346 SkImageInfo fInfo;
347 Usage fUsage;
348 };
349 virtual SkBaseDevice* onCreateCompatibleDevice(const CreateInfo& cinfo) {
350 // call deprecated method until we can update chrome's subclasses
351 return this->onCreateDevice(cinfo.fInfo, cinfo.fUsage);
352 }
353
343 private: 354 private:
344 friend class SkCanvas; 355 friend class SkCanvas;
345 friend struct DeviceCM; //for setMatrixClip 356 friend struct DeviceCM; //for setMatrixClip
346 friend class SkDraw; 357 friend class SkDraw;
347 friend class SkDrawIter; 358 friend class SkDrawIter;
348 friend class SkDeviceFilteredPaint; 359 friend class SkDeviceFilteredPaint;
349 friend class SkDeviceImageFilterProxy; 360 friend class SkDeviceImageFilterProxy;
350 friend class SkDeferredDevice; // for newSurface 361 friend class SkDeferredDevice; // for newSurface
351 362
352 friend class SkSurface_Raster; 363 friend class SkSurface_Raster;
353 364
354 // used to change the backend's pixels (and possibly config/rowbytes) 365 // used to change the backend's pixels (and possibly config/rowbytes)
355 // but cannot change the width/height, so there should be no change to 366 // but cannot change the width/height, so there should be no change to
356 // any clip information. 367 // any clip information.
357 // TODO: move to SkBitmapDevice 368 // TODO: move to SkBitmapDevice
358 virtual void replaceBitmapBackendForRasterSurface(const SkBitmap&) {} 369 virtual void replaceBitmapBackendForRasterSurface(const SkBitmap&) {}
359 370
360 virtual bool forceConservativeRasterClip() const { return false; } 371 virtual bool forceConservativeRasterClip() const { return false; }
361 372
362 // just called by SkCanvas when built as a layer 373 // just called by SkCanvas when built as a layer
363 void setOrigin(int x, int y) { fOrigin.set(x, y); } 374 void setOrigin(int x, int y) { fOrigin.set(x, y); }
364 // just called by SkCanvas for saveLayer 375 // just called by SkCanvas for saveLayer
365 SkBaseDevice* createCompatibleDeviceForSaveLayer(const SkImageInfo&); 376 SkBaseDevice* createCompatibleDeviceForSaveLayer(const SkImageInfo&);
366 // just called by SkCanvas for imagefilter 377 // just called by SkCanvas for imagefilter
367 SkBaseDevice* createCompatibleDeviceForImageFilter(const SkImageInfo&); 378 SkBaseDevice* createCompatibleDeviceForImageFilter(const SkImageInfo&);
368 379
380 // DEPRECATED -- override onCreateCompatibleDevice instead.
369 virtual SkBaseDevice* onCreateDevice(const SkImageInfo&, Usage) { 381 virtual SkBaseDevice* onCreateDevice(const SkImageInfo&, Usage) {
370 return NULL; 382 return NULL;
371 } 383 }
372 384
373 /** Causes any deferred drawing to the device to be completed. 385 /** Causes any deferred drawing to the device to be completed.
374 */ 386 */
375 virtual void flush() {} 387 virtual void flush() {}
376 388
377 virtual SkImageFilter::Cache* getImageFilterCache() { return NULL; } 389 virtual SkImageFilter::Cache* getImageFilterCache() { return NULL; }
378 390
379 SkIPoint fOrigin; 391 SkIPoint fOrigin;
380 SkMetaData* fMetaData; 392 SkMetaData* fMetaData;
381 SkDeviceProperties* fLeakyProperties; // will always exist. 393 SkDeviceProperties* fLeakyProperties; // will always exist.
382 394
383 #ifdef SK_DEBUG 395 #ifdef SK_DEBUG
384 bool fAttachedToCanvas; 396 bool fAttachedToCanvas;
385 #endif 397 #endif
386 398
387 typedef SkRefCnt INHERITED; 399 typedef SkRefCnt INHERITED;
388 }; 400 };
389 401
390 #endif 402 #endif
OLDNEW
« no previous file with comments | « include/core/SkBitmapDevice.h ('k') | include/pdf/SkPDFDevice.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698