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

Side by Side Diff: src/core/SkCanvas.cpp

Issue 1845283003: Gamma-correctness pushed into Skia, top-down. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Remove helper function for old pixel-config method of enabling decode Created 4 years, 8 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
OLDNEW
1 /* 1 /*
2 * Copyright 2008 The Android Open Source Project 2 * Copyright 2008 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 #include "SkBitmapDevice.h" 8 #include "SkBitmapDevice.h"
9 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkCanvasPriv.h" 10 #include "SkCanvasPriv.h"
(...skipping 1316 matching lines...) Expand 10 before | Expand all | Expand 10 after
1327 1327
1328 SkImageInfo SkCanvas::imageInfo() const { 1328 SkImageInfo SkCanvas::imageInfo() const {
1329 SkBaseDevice* dev = this->getDevice(); 1329 SkBaseDevice* dev = this->getDevice();
1330 if (dev) { 1330 if (dev) {
1331 return dev->imageInfo(); 1331 return dev->imageInfo();
1332 } else { 1332 } else {
1333 return SkImageInfo::MakeUnknown(0, 0); 1333 return SkImageInfo::MakeUnknown(0, 0);
1334 } 1334 }
1335 } 1335 }
1336 1336
1337 const SkSurfaceProps* SkCanvas::props() const {
robertphillips 2016/04/05 12:54:34 Is this b.c. of the PDFCanvas? If so, what does PD
1338 SkBaseDevice* dev = this->getDevice();
1339 if (dev) {
1340 return &fProps;
1341 } else {
1342 return nullptr;
1343 }
1344 }
1345
1337 #ifdef SK_SUPPORT_LEGACY_PEEKPIXELS_PARMS 1346 #ifdef SK_SUPPORT_LEGACY_PEEKPIXELS_PARMS
1338 const void* SkCanvas::peekPixels(SkImageInfo* info, size_t* rowBytes) { 1347 const void* SkCanvas::peekPixels(SkImageInfo* info, size_t* rowBytes) {
1339 SkPixmap pmap; 1348 SkPixmap pmap;
1340 if (this->peekPixels(&pmap)) { 1349 if (this->peekPixels(&pmap)) {
1341 if (info) { 1350 if (info) {
1342 *info = pmap.info(); 1351 *info = pmap.info();
1343 } 1352 }
1344 if (rowBytes) { 1353 if (rowBytes) {
1345 *rowBytes = pmap.rowBytes(); 1354 *rowBytes = pmap.rowBytes();
1346 } 1355 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1399 if (filter && !dstDev->canHandleImageFilter(filter)) { 1408 if (filter && !dstDev->canHandleImageFilter(filter)) {
1400 SkImageFilter::DeviceProxy proxy(dstDev); 1409 SkImageFilter::DeviceProxy proxy(dstDev);
1401 SkIPoint offset = SkIPoint::Make(0, 0); 1410 SkIPoint offset = SkIPoint::Make(0, 0);
1402 const SkBitmap& srcBM = srcDev->accessBitmap(false); 1411 const SkBitmap& srcBM = srcDev->accessBitmap(false);
1403 SkMatrix matrix = *iter.fMatrix; 1412 SkMatrix matrix = *iter.fMatrix;
1404 matrix.postTranslate(SkIntToScalar(-pos.x()), SkIntToScalar(-pos.y() )); 1413 matrix.postTranslate(SkIntToScalar(-pos.x()), SkIntToScalar(-pos.y() ));
1405 const SkIRect clipBounds = iter.fClip->getBounds().makeOffset(-pos.x (), -pos.y()); 1414 const SkIRect clipBounds = iter.fClip->getBounds().makeOffset(-pos.x (), -pos.y());
1406 SkAutoTUnref<SkImageFilter::Cache> cache(dstDev->getImageFilterCache ()); 1415 SkAutoTUnref<SkImageFilter::Cache> cache(dstDev->getImageFilterCache ());
1407 SkImageFilter::Context ctx(matrix, clipBounds, cache.get()); 1416 SkImageFilter::Context ctx(matrix, clipBounds, cache.get());
1408 1417
1409 sk_sp<SkSpecialImage> srcImg(SkSpecialImage::internal_fromBM(&proxy, srcBM)); 1418 sk_sp<SkSpecialImage> srcImg(SkSpecialImage::internal_fromBM(&proxy, srcBM,
1419 &dstDev ->surfaceProps()));
1410 if (!srcImg) { 1420 if (!srcImg) {
1411 continue; // something disastrous happened 1421 continue; // something disastrous happened
1412 } 1422 }
1413 1423
1414 sk_sp<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ct x, &offset)); 1424 sk_sp<SkSpecialImage> resultImg(filter->filterImage(srcImg.get(), ct x, &offset));
1415 if (resultImg) { 1425 if (resultImg) {
1416 SkPaint tmpUnfiltered(*paint); 1426 SkPaint tmpUnfiltered(*paint);
1417 tmpUnfiltered.setImageFilter(nullptr); 1427 tmpUnfiltered.setImageFilter(nullptr);
1418 SkBitmap resultBM; 1428 SkBitmap resultBM;
1419 if (resultImg->internal_getBM(&resultBM)) { 1429 if (resultImg->internal_getBM(&resultBM)) {
(...skipping 1620 matching lines...) Expand 10 before | Expand all | Expand 10 after
3040 3050
3041 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() { 3051 SkAutoCanvasMatrixPaint::~SkAutoCanvasMatrixPaint() {
3042 fCanvas->restoreToCount(fSaveCount); 3052 fCanvas->restoreToCount(fSaveCount);
3043 } 3053 }
3044 3054
3045 #ifdef SK_SUPPORT_LEGACY_NEW_SURFACE_API 3055 #ifdef SK_SUPPORT_LEGACY_NEW_SURFACE_API
3046 SkSurface* SkCanvas::newSurface(const SkImageInfo& info, const SkSurfaceProps* p rops) { 3056 SkSurface* SkCanvas::newSurface(const SkImageInfo& info, const SkSurfaceProps* p rops) {
3047 return this->makeSurface(info, props).release(); 3057 return this->makeSurface(info, props).release();
3048 } 3058 }
3049 #endif 3059 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698