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

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

Issue 1565113004: Change to wire up opnames in SkGpuDevice (Closed) Base URL: https://skia.googlesource.com/skia.git@audittrail-initial
Patch Set: add a bunch of macros to interact with GrAuditTrail Created 4 years, 11 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/GrTracing.h ('k') | no next file » | 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 "GrBlurUtils.h" 10 #include "GrBlurUtils.h"
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 DO_DEFERRED_CLEAR(); 301 DO_DEFERRED_CLEAR();
302 } 302 }
303 303
304 GrRenderTarget* SkGpuDevice::accessRenderTarget() { 304 GrRenderTarget* SkGpuDevice::accessRenderTarget() {
305 DO_DEFERRED_CLEAR(); 305 DO_DEFERRED_CLEAR();
306 return fRenderTarget; 306 return fRenderTarget;
307 } 307 }
308 308
309 void SkGpuDevice::clearAll() { 309 void SkGpuDevice::clearAll() {
310 GrColor color = 0; 310 GrColor color = 0;
311 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::clearAll", fContext); 311 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "clearAll", fContext);
312 SkIRect rect = SkIRect::MakeWH(this->width(), this->height()); 312 SkIRect rect = SkIRect::MakeWH(this->width(), this->height());
313 fDrawContext->clear(&rect, color, true); 313 fDrawContext->clear(&rect, color, true);
314 fNeedClear = false; 314 fNeedClear = false;
315 } 315 }
316 316
317 void SkGpuDevice::replaceRenderTarget(bool shouldRetainContent) { 317 void SkGpuDevice::replaceRenderTarget(bool shouldRetainContent) {
318 // Caller must have accessed the render target, because it knows the rt must be replaced. 318 // Caller must have accessed the render target, because it knows the rt must be replaced.
319 SkASSERT(!fNeedClear); 319 SkASSERT(!fNeedClear);
320 320
321 SkSurface::Budgeted budgeted = 321 SkSurface::Budgeted budgeted =
(...skipping 26 matching lines...) Expand all
348 SkPixelRef* pr = new SkGrPixelRef(fLegacyBitmap.info(), fRenderTarget); 348 SkPixelRef* pr = new SkGrPixelRef(fLegacyBitmap.info(), fRenderTarget);
349 fLegacyBitmap.setPixelRef(pr)->unref(); 349 fLegacyBitmap.setPixelRef(pr)->unref();
350 350
351 fDrawContext.reset(this->context()->drawContext(fRenderTarget, &this->surfac eProps())); 351 fDrawContext.reset(this->context()->drawContext(fRenderTarget, &this->surfac eProps()));
352 } 352 }
353 353
354 /////////////////////////////////////////////////////////////////////////////// 354 ///////////////////////////////////////////////////////////////////////////////
355 355
356 void SkGpuDevice::drawPaint(const SkDraw& draw, const SkPaint& paint) { 356 void SkGpuDevice::drawPaint(const SkDraw& draw, const SkPaint& paint) {
357 CHECK_SHOULD_DRAW(draw); 357 CHECK_SHOULD_DRAW(draw);
358 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawPaint", fContext); 358 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawPaint", fContext);
359 359
360 GrPaint grPaint; 360 GrPaint grPaint;
361 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) { 361 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
362 return; 362 return;
363 } 363 }
364 364
365 fDrawContext->drawPaint(fClip, grPaint, *draw.fMatrix); 365 fDrawContext->drawPaint(fClip, grPaint, *draw.fMatrix);
366 } 366 }
367 367
368 // must be in SkCanvas::PointMode order 368 // must be in SkCanvas::PointMode order
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 (SkPoint*)pts, 439 (SkPoint*)pts,
440 nullptr, 440 nullptr,
441 nullptr, 441 nullptr,
442 nullptr, 442 nullptr,
443 0); 443 0);
444 } 444 }
445 445
446 /////////////////////////////////////////////////////////////////////////////// 446 ///////////////////////////////////////////////////////////////////////////////
447 447
448 void SkGpuDevice::drawRect(const SkDraw& draw, const SkRect& rect, const SkPaint & paint) { 448 void SkGpuDevice::drawRect(const SkDraw& draw, const SkRect& rect, const SkPaint & paint) {
449 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawRect", fContext); 449 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawRect", fContext);
450 CHECK_FOR_ANNOTATION(paint); 450 CHECK_FOR_ANNOTATION(paint);
451 CHECK_SHOULD_DRAW(draw); 451 CHECK_SHOULD_DRAW(draw);
452 452
453 bool doStroke = paint.getStyle() != SkPaint::kFill_Style; 453 bool doStroke = paint.getStyle() != SkPaint::kFill_Style;
454 SkScalar width = paint.getStrokeWidth(); 454 SkScalar width = paint.getStrokeWidth();
455 455
456 /* 456 /*
457 We have special code for hairline strokes, miter-strokes, bevel-stroke 457 We have special code for hairline strokes, miter-strokes, bevel-stroke
458 and fills. Anything else we just call our path code. 458 and fills. Anything else we just call our path code.
459 */ 459 */
(...skipping 25 matching lines...) Expand all
485 485
486 GrStrokeInfo strokeInfo(paint); 486 GrStrokeInfo strokeInfo(paint);
487 487
488 fDrawContext->drawRect(fClip, grPaint, *draw.fMatrix, rect, &strokeInfo); 488 fDrawContext->drawRect(fClip, grPaint, *draw.fMatrix, rect, &strokeInfo);
489 } 489 }
490 490
491 /////////////////////////////////////////////////////////////////////////////// 491 ///////////////////////////////////////////////////////////////////////////////
492 492
493 void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rect, 493 void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rect,
494 const SkPaint& paint) { 494 const SkPaint& paint) {
495 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawRRect", fContext); 495 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawRRect", fContext);
496 CHECK_FOR_ANNOTATION(paint); 496 CHECK_FOR_ANNOTATION(paint);
497 CHECK_SHOULD_DRAW(draw); 497 CHECK_SHOULD_DRAW(draw);
498 498
499 GrPaint grPaint; 499 GrPaint grPaint;
500 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) { 500 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
501 return; 501 return;
502 } 502 }
503 503
504 GrStrokeInfo strokeInfo(paint); 504 GrStrokeInfo strokeInfo(paint);
505 if (paint.getMaskFilter()) { 505 if (paint.getMaskFilter()) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 return; 548 return;
549 } 549 }
550 550
551 SkASSERT(!strokeInfo.isDashed()); 551 SkASSERT(!strokeInfo.isDashed());
552 552
553 fDrawContext->drawRRect(fClip, grPaint, *draw.fMatrix, rect, strokeInfo); 553 fDrawContext->drawRRect(fClip, grPaint, *draw.fMatrix, rect, strokeInfo);
554 } 554 }
555 555
556 void SkGpuDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer, 556 void SkGpuDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer,
557 const SkRRect& inner, const SkPaint& paint) { 557 const SkRRect& inner, const SkPaint& paint) {
558 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawDRRect", fContext); 558 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawDRRect", fContext);
559 CHECK_FOR_ANNOTATION(paint); 559 CHECK_FOR_ANNOTATION(paint);
560 CHECK_SHOULD_DRAW(draw); 560 CHECK_SHOULD_DRAW(draw);
561 561
562 SkStrokeRec stroke(paint); 562 SkStrokeRec stroke(paint);
563 563
564 if (stroke.isFillStyle() && !paint.getMaskFilter() && !paint.getPathEffect() ) { 564 if (stroke.isFillStyle() && !paint.getMaskFilter() && !paint.getPathEffect() ) {
565 GrPaint grPaint; 565 GrPaint grPaint;
566 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) { 566 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
567 return; 567 return;
568 } 568 }
(...skipping 11 matching lines...) Expand all
580 GrBlurUtils::drawPathWithMaskFilter(fContext, fDrawContext, 580 GrBlurUtils::drawPathWithMaskFilter(fContext, fDrawContext,
581 fClip, path, paint, 581 fClip, path, paint,
582 *draw.fMatrix, nullptr, 582 *draw.fMatrix, nullptr,
583 draw.fClip->getBounds(), true); 583 draw.fClip->getBounds(), true);
584 } 584 }
585 585
586 586
587 ///////////////////////////////////////////////////////////////////////////// 587 /////////////////////////////////////////////////////////////////////////////
588 588
589 void SkGpuDevice::drawOval(const SkDraw& draw, const SkRect& oval, const SkPaint & paint) { 589 void SkGpuDevice::drawOval(const SkDraw& draw, const SkRect& oval, const SkPaint & paint) {
590 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawOval", fContext); 590 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawOval", fContext);
591 CHECK_FOR_ANNOTATION(paint); 591 CHECK_FOR_ANNOTATION(paint);
592 CHECK_SHOULD_DRAW(draw); 592 CHECK_SHOULD_DRAW(draw);
593 593
594 // Presumably the path effect warps this to something other than an oval 594 // Presumably the path effect warps this to something other than an oval
595 if (paint.getPathEffect()) { 595 if (paint.getPathEffect()) {
596 SkPath path; 596 SkPath path;
597 path.setIsVolatile(true); 597 path.setIsVolatile(true);
598 path.addOval(oval); 598 path.addOval(oval);
599 this->drawPath(draw, path, paint, nullptr, true); 599 this->drawPath(draw, path, paint, nullptr, true);
600 return; 600 return;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 } 644 }
645 SkRRect rrect; 645 SkRRect rrect;
646 if (origSrcPath.isRRect(&rrect)) { 646 if (origSrcPath.isRRect(&rrect)) {
647 this->drawRRect(draw, rrect, paint); 647 this->drawRRect(draw, rrect, paint);
648 return; 648 return;
649 } 649 }
650 } 650 }
651 651
652 CHECK_FOR_ANNOTATION(paint); 652 CHECK_FOR_ANNOTATION(paint);
653 CHECK_SHOULD_DRAW(draw); 653 CHECK_SHOULD_DRAW(draw);
654 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawPath", fContext); 654 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawPath", fContext);
655 655
656 GrBlurUtils::drawPathWithMaskFilter(fContext, fDrawContext, 656 GrBlurUtils::drawPathWithMaskFilter(fContext, fDrawContext,
657 fClip, origSrcPath, paint, 657 fClip, origSrcPath, paint,
658 *draw.fMatrix, prePathMatrix, 658 *draw.fMatrix, prePathMatrix,
659 draw.fClip->getBounds(), pathIsMutable); 659 draw.fClip->getBounds(), pathIsMutable);
660 } 660 }
661 661
662 static const int kBmpSmallTileSize = 1 << 10; 662 static const int kBmpSmallTileSize = 1 << 10;
663 663
664 static inline int get_tile_count(const SkIRect& srcRect, int tileSize) { 664 static inline int get_tile_count(const SkIRect& srcRect, int tileSize) {
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
1280 return; 1280 return;
1281 } 1281 }
1282 } 1282 }
1283 GrBitmapTextureMaker maker(fContext, bitmap); 1283 GrBitmapTextureMaker maker(fContext, bitmap);
1284 this->drawTextureProducer(&maker, src, dst, constraint, *draw.fMatrix, fClip , paint); 1284 this->drawTextureProducer(&maker, src, dst, constraint, *draw.fMatrix, fClip , paint);
1285 } 1285 }
1286 1286
1287 void SkGpuDevice::drawDevice(const SkDraw& draw, SkBaseDevice* device, 1287 void SkGpuDevice::drawDevice(const SkDraw& draw, SkBaseDevice* device,
1288 int x, int y, const SkPaint& paint) { 1288 int x, int y, const SkPaint& paint) {
1289 // clear of the source device must occur before CHECK_SHOULD_DRAW 1289 // clear of the source device must occur before CHECK_SHOULD_DRAW
1290 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawDevice", fContext); 1290 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawDevice", fContext);
1291 SkGpuDevice* dev = static_cast<SkGpuDevice*>(device); 1291 SkGpuDevice* dev = static_cast<SkGpuDevice*>(device);
1292 1292
1293 // TODO: If the source device covers the whole of this device, we could 1293 // TODO: If the source device covers the whole of this device, we could
1294 // omit fNeedsClear -related flushing. 1294 // omit fNeedsClear -related flushing.
1295 // TODO: if source needs clear, we could maybe omit the draw fully. 1295 // TODO: if source needs clear, we could maybe omit the draw fully.
1296 1296
1297 // drawDevice is defined to be in device coords. 1297 // drawDevice is defined to be in device coords.
1298 CHECK_SHOULD_DRAW(draw); 1298 CHECK_SHOULD_DRAW(draw);
1299 1299
1300 GrRenderTarget* devRT = dev->accessRenderTarget(); 1300 GrRenderTarget* devRT = dev->accessRenderTarget();
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
1445 CHECK_SHOULD_DRAW(draw); 1445 CHECK_SHOULD_DRAW(draw);
1446 GrImageTextureMaker maker(fContext, cacher, image, SkImage::kAllow_Cachi ngHint); 1446 GrImageTextureMaker maker(fContext, cacher, image, SkImage::kAllow_Cachi ngHint);
1447 this->drawTextureProducer(&maker, src, &dst, constraint, *draw.fMatrix, fClip, paint); 1447 this->drawTextureProducer(&maker, src, &dst, constraint, *draw.fMatrix, fClip, paint);
1448 } else if (as_IB(image)->getROPixels(&bm)) { 1448 } else if (as_IB(image)->getROPixels(&bm)) {
1449 this->drawBitmapRect(draw, bm, src, dst, paint, constraint); 1449 this->drawBitmapRect(draw, bm, src, dst, paint, constraint);
1450 } 1450 }
1451 } 1451 }
1452 1452
1453 void SkGpuDevice::drawProducerNine(const SkDraw& draw, GrTextureProducer* produc er, 1453 void SkGpuDevice::drawProducerNine(const SkDraw& draw, GrTextureProducer* produc er,
1454 const SkIRect& center, const SkRect& dst, con st SkPaint& paint) { 1454 const SkIRect& center, const SkRect& dst, con st SkPaint& paint) {
1455 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawProducerNine", fContext); 1455 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawProducerNine", fContext);
1456 1456
1457 CHECK_FOR_ANNOTATION(paint); 1457 CHECK_FOR_ANNOTATION(paint);
1458 CHECK_SHOULD_DRAW(draw); 1458 CHECK_SHOULD_DRAW(draw);
1459 1459
1460 bool useFallback = paint.getMaskFilter() || paint.isAntiAlias() || 1460 bool useFallback = paint.getMaskFilter() || paint.isAntiAlias() ||
1461 fRenderTarget->isUnifiedMultisampled(); 1461 fRenderTarget->isUnifiedMultisampled();
1462 bool doBicubic; 1462 bool doBicubic;
1463 GrTextureParams::FilterMode textureFilterMode = 1463 GrTextureParams::FilterMode textureFilterMode =
1464 GrSkFilterQualityToGrFilterMode(paint.getFilterQuality(), *draw.fMatrix, SkMatrix::I(), 1464 GrSkFilterQualityToGrFilterMode(paint.getFilterQuality(), *draw.fMatrix, SkMatrix::I(),
1465 &doBicubic); 1465 &doBicubic);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1526 kTriangleFan_GrPrimitiveType, 1526 kTriangleFan_GrPrimitiveType,
1527 }; 1527 };
1528 1528
1529 void SkGpuDevice::drawVertices(const SkDraw& draw, SkCanvas::VertexMode vmode, 1529 void SkGpuDevice::drawVertices(const SkDraw& draw, SkCanvas::VertexMode vmode,
1530 int vertexCount, const SkPoint vertices[], 1530 int vertexCount, const SkPoint vertices[],
1531 const SkPoint texs[], const SkColor colors[], 1531 const SkPoint texs[], const SkColor colors[],
1532 SkXfermode* xmode, 1532 SkXfermode* xmode,
1533 const uint16_t indices[], int indexCount, 1533 const uint16_t indices[], int indexCount,
1534 const SkPaint& paint) { 1534 const SkPaint& paint) {
1535 CHECK_SHOULD_DRAW(draw); 1535 CHECK_SHOULD_DRAW(draw);
1536 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawVertices", fContext); 1536 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawVertices", fContext);
1537 1537
1538 // If both textures and vertex-colors are nullptr, strokes hairlines with th e paint's color. 1538 // If both textures and vertex-colors are nullptr, strokes hairlines with th e paint's color.
1539 if ((nullptr == texs || nullptr == paint.getShader()) && nullptr == colors) { 1539 if ((nullptr == texs || nullptr == paint.getShader()) && nullptr == colors) {
1540 1540
1541 texs = nullptr; 1541 texs = nullptr;
1542 1542
1543 SkPaint copy(paint); 1543 SkPaint copy(paint);
1544 copy.setStyle(SkPaint::kStroke_Style); 1544 copy.setStyle(SkPaint::kStroke_Style);
1545 copy.setStrokeWidth(0); 1545 copy.setStrokeWidth(0);
1546 1546
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1658 1658
1659 void SkGpuDevice::drawAtlas(const SkDraw& draw, const SkImage* atlas, const SkRS Xform xform[], 1659 void SkGpuDevice::drawAtlas(const SkDraw& draw, const SkImage* atlas, const SkRS Xform xform[],
1660 const SkRect texRect[], const SkColor colors[], int count, 1660 const SkRect texRect[], const SkColor colors[], int count,
1661 SkXfermode::Mode mode, const SkPaint& paint) { 1661 SkXfermode::Mode mode, const SkPaint& paint) {
1662 if (paint.isAntiAlias()) { 1662 if (paint.isAntiAlias()) {
1663 this->INHERITED::drawAtlas(draw, atlas, xform, texRect, colors, count, m ode, paint); 1663 this->INHERITED::drawAtlas(draw, atlas, xform, texRect, colors, count, m ode, paint);
1664 return; 1664 return;
1665 } 1665 }
1666 1666
1667 CHECK_SHOULD_DRAW(draw); 1667 CHECK_SHOULD_DRAW(draw);
1668 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawText", fContext); 1668 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawText", fContext);
1669 1669
1670 SkPaint p(paint); 1670 SkPaint p(paint);
1671 p.setShader(atlas->newShader(SkShader::kClamp_TileMode, SkShader::kClamp_Til eMode))->unref(); 1671 p.setShader(atlas->newShader(SkShader::kClamp_TileMode, SkShader::kClamp_Til eMode))->unref();
1672 1672
1673 GrPaint grPaint; 1673 GrPaint grPaint;
1674 if (colors) { 1674 if (colors) {
1675 if (!SkPaintToGrPaintWithXfermode(this->context(), p, *draw.fMatrix, mod e, true, 1675 if (!SkPaintToGrPaintWithXfermode(this->context(), p, *draw.fMatrix, mod e, true,
1676 &grPaint)) { 1676 &grPaint)) {
1677 return; 1677 return;
1678 } 1678 }
1679 } else { 1679 } else {
1680 if (!SkPaintToGrPaint(this->context(), p, *draw.fMatrix, &grPaint)) { 1680 if (!SkPaintToGrPaint(this->context(), p, *draw.fMatrix, &grPaint)) {
1681 return; 1681 return;
1682 } 1682 }
1683 } 1683 }
1684 1684
1685 SkDEBUGCODE(this->validate();) 1685 SkDEBUGCODE(this->validate();)
1686 fDrawContext->drawAtlas(fClip, grPaint, *draw.fMatrix, count, xform, texRect , colors); 1686 fDrawContext->drawAtlas(fClip, grPaint, *draw.fMatrix, count, xform, texRect , colors);
1687 } 1687 }
1688 1688
1689 /////////////////////////////////////////////////////////////////////////////// 1689 ///////////////////////////////////////////////////////////////////////////////
1690 1690
1691 void SkGpuDevice::drawText(const SkDraw& draw, const void* text, 1691 void SkGpuDevice::drawText(const SkDraw& draw, const void* text,
1692 size_t byteLength, SkScalar x, SkScalar y, 1692 size_t byteLength, SkScalar x, SkScalar y,
1693 const SkPaint& paint) { 1693 const SkPaint& paint) {
1694 CHECK_SHOULD_DRAW(draw); 1694 CHECK_SHOULD_DRAW(draw);
1695 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawText", fContext); 1695 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawText", fContext);
1696 1696
1697 GrPaint grPaint; 1697 GrPaint grPaint;
1698 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) { 1698 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
1699 return; 1699 return;
1700 } 1700 }
1701 1701
1702 SkDEBUGCODE(this->validate();) 1702 SkDEBUGCODE(this->validate();)
1703 1703
1704 fDrawContext->drawText(fClip, grPaint, paint, *draw.fMatrix, 1704 fDrawContext->drawText(fClip, grPaint, paint, *draw.fMatrix,
1705 (const char *)text, byteLength, x, y, draw.fClip->get Bounds()); 1705 (const char *)text, byteLength, x, y, draw.fClip->get Bounds());
1706 } 1706 }
1707 1707
1708 void SkGpuDevice::drawPosText(const SkDraw& draw, const void* text, size_t byteL ength, 1708 void SkGpuDevice::drawPosText(const SkDraw& draw, const void* text, size_t byteL ength,
1709 const SkScalar pos[], int scalarsPerPos, 1709 const SkScalar pos[], int scalarsPerPos,
1710 const SkPoint& offset, const SkPaint& paint) { 1710 const SkPoint& offset, const SkPaint& paint) {
1711 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawPosText", fContext); 1711 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawPosText", fContext);
1712 CHECK_SHOULD_DRAW(draw); 1712 CHECK_SHOULD_DRAW(draw);
1713 1713
1714 GrPaint grPaint; 1714 GrPaint grPaint;
1715 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) { 1715 if (!SkPaintToGrPaint(this->context(), paint, *draw.fMatrix, &grPaint)) {
1716 return; 1716 return;
1717 } 1717 }
1718 1718
1719 SkDEBUGCODE(this->validate();) 1719 SkDEBUGCODE(this->validate();)
1720 1720
1721 fDrawContext->drawPosText(fClip, grPaint, paint, *draw.fMatrix, 1721 fDrawContext->drawPosText(fClip, grPaint, paint, *draw.fMatrix,
1722 (const char *)text, byteLength, pos, scalarsPerPos , offset, 1722 (const char *)text, byteLength, pos, scalarsPerPos , offset,
1723 draw.fClip->getBounds()); 1723 draw.fClip->getBounds());
1724 } 1724 }
1725 1725
1726 void SkGpuDevice::drawTextBlob(const SkDraw& draw, const SkTextBlob* blob, SkSca lar x, SkScalar y, 1726 void SkGpuDevice::drawTextBlob(const SkDraw& draw, const SkTextBlob* blob, SkSca lar x, SkScalar y,
1727 const SkPaint& paint, SkDrawFilter* drawFilter) { 1727 const SkPaint& paint, SkDrawFilter* drawFilter) {
1728 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice::drawTextBlob", fContext); 1728 GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawTextBlob", fContext);
1729 CHECK_SHOULD_DRAW(draw); 1729 CHECK_SHOULD_DRAW(draw);
1730 1730
1731 SkDEBUGCODE(this->validate();) 1731 SkDEBUGCODE(this->validate();)
1732 1732
1733 fDrawContext->drawTextBlob(fClip, paint, *draw.fMatrix, 1733 fDrawContext->drawTextBlob(fClip, paint, *draw.fMatrix,
1734 blob, x, y, drawFilter, draw.fClip->getBounds()); 1734 blob, x, y, drawFilter, draw.fClip->getBounds());
1735 } 1735 }
1736 1736
1737 /////////////////////////////////////////////////////////////////////////////// 1737 ///////////////////////////////////////////////////////////////////////////////
1738 1738
1739 bool SkGpuDevice::onShouldDisableLCD(const SkPaint& paint) const { 1739 bool SkGpuDevice::onShouldDisableLCD(const SkPaint& paint) const {
1740 return GrTextContext::ShouldDisableLCD(paint); 1740 return GrTextContext::ShouldDisableLCD(paint);
1741 } 1741 }
1742 1742
1743 void SkGpuDevice::flush() { 1743 void SkGpuDevice::flush() {
1744 DO_DEFERRED_CLEAR(); 1744 DO_DEFERRED_CLEAR();
1745 fRenderTarget->prepareForExternalIO(); 1745 fRenderTarget->prepareForExternalIO();
1746
1747 // Clear batch debugging output
1748 if (GR_BATCH_DEBUGGING_OUTPUT) {
1749 SkDebugf("%s\n", fContext->getAuditTrail()->toJson().c_str());
1750 GR_AUDIT_TRAIL_RESET(fContext->getAuditTrail());
1751 }
1746 } 1752 }
1747 1753
1748 /////////////////////////////////////////////////////////////////////////////// 1754 ///////////////////////////////////////////////////////////////////////////////
1749 1755
1750 SkBaseDevice* SkGpuDevice::onCreateDevice(const CreateInfo& cinfo, const SkPaint *) { 1756 SkBaseDevice* SkGpuDevice::onCreateDevice(const CreateInfo& cinfo, const SkPaint *) {
1751 GrSurfaceDesc desc; 1757 GrSurfaceDesc desc;
1752 desc.fConfig = fRenderTarget->config(); 1758 desc.fConfig = fRenderTarget->config();
1753 desc.fFlags = kRenderTarget_GrSurfaceFlag; 1759 desc.fFlags = kRenderTarget_GrSurfaceFlag;
1754 desc.fWidth = cinfo.fInfo.width(); 1760 desc.fWidth = cinfo.fInfo.width();
1755 desc.fHeight = cinfo.fInfo.height(); 1761 desc.fHeight = cinfo.fInfo.height();
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
1860 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize); 1866 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize);
1861 } 1867 }
1862 1868
1863 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() { 1869 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() {
1864 // We always return a transient cache, so it is freed after each 1870 // We always return a transient cache, so it is freed after each
1865 // filter traversal. 1871 // filter traversal.
1866 return SkGpuDevice::NewImageFilterCache(); 1872 return SkGpuDevice::NewImageFilterCache();
1867 } 1873 }
1868 1874
1869 #endif 1875 #endif
OLDNEW
« no previous file with comments | « src/gpu/GrTracing.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698