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

Side by Side Diff: src/gpu/SkGpuDevice.cpp

Issue 333823007: Enable basic drawing with SkRecord-based pictures. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: ref accel data Created 6 years, 6 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 | « src/gpu/GrPictureUtils.cpp ('k') | tools/bench_playback.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 #include "SkGpuDevice.h" 8 #include "SkGpuDevice.h"
9 9
10 #include "effects/GrBicubicEffect.h" 10 #include "effects/GrBicubicEffect.h"
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 467
468 if (usePath) { 468 if (usePath) {
469 SkPath path; 469 SkPath path;
470 path.addRect(rect); 470 path.addRect(rect);
471 this->drawPath(draw, path, paint, NULL, true); 471 this->drawPath(draw, path, paint, NULL, true);
472 return; 472 return;
473 } 473 }
474 474
475 GrPaint grPaint; 475 GrPaint grPaint;
476 SkPaint2GrPaintShader(this->context(), paint, true, &grPaint); 476 SkPaint2GrPaintShader(this->context(), paint, true, &grPaint);
477 477
478 fContext->drawRect(grPaint, rect, &strokeInfo); 478 fContext->drawRect(grPaint, rect, &strokeInfo);
479 } 479 }
480 480
481 /////////////////////////////////////////////////////////////////////////////// 481 ///////////////////////////////////////////////////////////////////////////////
482 482
483 void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rect, 483 void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rect,
484 const SkPaint& paint) { 484 const SkPaint& paint) {
485 CHECK_FOR_ANNOTATION(paint); 485 CHECK_FOR_ANNOTATION(paint);
486 CHECK_SHOULD_DRAW(draw, false); 486 CHECK_SHOULD_DRAW(draw, false);
487 487
488 GrPaint grPaint; 488 GrPaint grPaint;
489 SkPaint2GrPaintShader(this->context(), paint, true, &grPaint); 489 SkPaint2GrPaintShader(this->context(), paint, true, &grPaint);
490 490
491 GrStrokeInfo strokeInfo(paint); 491 GrStrokeInfo strokeInfo(paint);
492 if (paint.getMaskFilter()) { 492 if (paint.getMaskFilter()) {
493 // try to hit the fast path for drawing filtered round rects 493 // try to hit the fast path for drawing filtered round rects
494 494
495 SkRRect devRRect; 495 SkRRect devRRect;
496 if (rect.transform(fContext->getMatrix(), &devRRect)) { 496 if (rect.transform(fContext->getMatrix(), &devRRect)) {
497 if (devRRect.allCornersCircular()) { 497 if (devRRect.allCornersCircular()) {
498 SkRect maskRect; 498 SkRect maskRect;
499 if (paint.getMaskFilter()->canFilterMaskGPU(devRRect.rect(), 499 if (paint.getMaskFilter()->canFilterMaskGPU(devRRect.rect(),
500 draw.fClip->getBounds(), 500 draw.fClip->getBounds(),
(...skipping 28 matching lines...) Expand all
529 } 529 }
530 } 530 }
531 531
532 532
533 if (usePath) { 533 if (usePath) {
534 SkPath path; 534 SkPath path;
535 path.addRRect(rect); 535 path.addRRect(rect);
536 this->drawPath(draw, path, paint, NULL, true); 536 this->drawPath(draw, path, paint, NULL, true);
537 return; 537 return;
538 } 538 }
539 539
540 fContext->drawRRect(grPaint, rect, strokeInfo); 540 fContext->drawRRect(grPaint, rect, strokeInfo);
541 } 541 }
542 542
543 void SkGpuDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer, 543 void SkGpuDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer,
544 const SkRRect& inner, const SkPaint& paint) { 544 const SkRRect& inner, const SkPaint& paint) {
545 SkStrokeRec stroke(paint); 545 SkStrokeRec stroke(paint);
546 if (stroke.isFillStyle()) { 546 if (stroke.isFillStyle()) {
547 547
548 CHECK_FOR_ANNOTATION(paint); 548 CHECK_FOR_ANNOTATION(paint);
549 CHECK_SHOULD_DRAW(draw, false); 549 CHECK_SHOULD_DRAW(draw, false);
(...skipping 1388 matching lines...) Expand 10 before | Expand all | Expand 10 after
1938 } 1938 }
1939 1939
1940 SkPicturePlayback::PlaybackReplacements replacements; 1940 SkPicturePlayback::PlaybackReplacements replacements;
1941 1941
1942 for (int i = 0; i < gpuData->numSaveLayers(); ++i) { 1942 for (int i = 0; i < gpuData->numSaveLayers(); ++i) {
1943 if (pullForward[i]) { 1943 if (pullForward[i]) {
1944 GrCachedLayer* layer = fContext->getLayerCache()->findLayerOrCreate( picture, i); 1944 GrCachedLayer* layer = fContext->getLayerCache()->findLayerOrCreate( picture, i);
1945 1945
1946 const GPUAccelData::SaveLayerInfo& info = gpuData->saveLayerInfo(i); 1946 const GPUAccelData::SaveLayerInfo& info = gpuData->saveLayerInfo(i);
1947 1947
1948 if (NULL != picture->fPlayback) { 1948 if (NULL != picture->fPlayback.get()) {
1949 SkPicturePlayback::PlaybackReplacements::ReplacementInfo* layerI nfo = 1949 SkPicturePlayback::PlaybackReplacements::ReplacementInfo* layerI nfo =
1950 replacem ents.push(); 1950 replacem ents.push();
1951 layerInfo->fStart = info.fSaveLayerOpID; 1951 layerInfo->fStart = info.fSaveLayerOpID;
1952 layerInfo->fStop = info.fRestoreOpID; 1952 layerInfo->fStop = info.fRestoreOpID;
1953 layerInfo->fPos = info.fOffset; 1953 layerInfo->fPos = info.fOffset;
1954 1954
1955 GrTextureDesc desc; 1955 GrTextureDesc desc;
1956 desc.fFlags = kRenderTarget_GrTextureFlagBit; 1956 desc.fFlags = kRenderTarget_GrTextureFlagBit;
1957 desc.fWidth = info.fSize.fWidth; 1957 desc.fWidth = info.fSize.fWidth;
1958 desc.fHeight = info.fSize.fHeight; 1958 desc.fHeight = info.fSize.fHeight;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
2006 GrCachedLayer* layer = fContext->getLayerCache()->findLayerOrCreate(pict ure, i); 2006 GrCachedLayer* layer = fContext->getLayerCache()->findLayerOrCreate(pict ure, i);
2007 2007
2008 if (NULL != layer->getTexture()) { 2008 if (NULL != layer->getTexture()) {
2009 fContext->unlockScratchTexture(layer->getTexture()); 2009 fContext->unlockScratchTexture(layer->getTexture());
2010 layer->setTexture(NULL); 2010 layer->setTexture(NULL);
2011 } 2011 }
2012 } 2012 }
2013 2013
2014 return true; 2014 return true;
2015 } 2015 }
OLDNEW
« no previous file with comments | « src/gpu/GrPictureUtils.cpp ('k') | tools/bench_playback.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698