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

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

Issue 1282363002: Use SkImageCacherator in SkImages (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: now with mutex safeness Created 5 years, 4 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 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 1528 matching lines...) Expand 10 before | Expand all | Expand 10 after
1539 // must be pushed upstack. 1539 // must be pushed upstack.
1540 AutoBitmapTexture abt(fContext, src, NULL, &texture); 1540 AutoBitmapTexture abt(fContext, src, NULL, &texture);
1541 if (!texture) { 1541 if (!texture) {
1542 return false; 1542 return false;
1543 } 1543 }
1544 1544
1545 return this->filterTexture(fContext, texture, src.width(), src.height(), 1545 return this->filterTexture(fContext, texture, src.width(), src.height(),
1546 filter, ctx, result, offset); 1546 filter, ctx, result, offset);
1547 } 1547 }
1548 1548
1549 static bool wrap_as_bm(const SkImage* image, SkBitmap* bm) { 1549 static bool wrap_as_bm(GrContext* ctx, const SkImage* image, SkBitmap* bm) {
1550 GrTexture* tex = as_IB(image)->getTexture(); 1550 SkAutoTUnref<GrTexture> tex(as_IB(image)->asTextureRef(ctx, kUntiled_SkImage UsageType));
1551 if (tex) { 1551 if (tex) {
1552 GrWrapTextureInBitmap(tex, image->width(), image->height(), image->isOpa que(), bm); 1552 GrWrapTextureInBitmap(tex, image->width(), image->height(), image->isOpa que(), bm);
1553 return true; 1553 return true;
1554 } else { 1554 } else {
1555 return as_IB(image)->getROPixels(bm); 1555 return as_IB(image)->getROPixels(bm);
1556 } 1556 }
1557 } 1557 }
1558 1558
1559 void SkGpuDevice::drawImage(const SkDraw& draw, const SkImage* image, SkScalar x , SkScalar y, 1559 void SkGpuDevice::drawImage(const SkDraw& draw, const SkImage* image, SkScalar x , SkScalar y,
1560 const SkPaint& paint) { 1560 const SkPaint& paint) {
1561 SkBitmap bm; 1561 SkBitmap bm;
1562 if (wrap_as_bm(image, &bm)) { 1562 if (wrap_as_bm(this->context(), image, &bm)) {
1563 this->drawBitmap(draw, bm, SkMatrix::MakeTrans(x, y), paint); 1563 this->drawBitmap(draw, bm, SkMatrix::MakeTrans(x, y), paint);
1564 } 1564 }
1565 } 1565 }
1566 1566
1567 void SkGpuDevice::drawImageRect(const SkDraw& draw, const SkImage* image, const SkRect* src, 1567 void SkGpuDevice::drawImageRect(const SkDraw& draw, const SkImage* image, const SkRect* src,
1568 const SkRect& dst, const SkPaint& paint, 1568 const SkRect& dst, const SkPaint& paint,
1569 SkCanvas::SrcRectConstraint constraint) { 1569 SkCanvas::SrcRectConstraint constraint) {
1570 SkBitmap bm; 1570 SkBitmap bm;
1571 if (wrap_as_bm(image, &bm)) { 1571 if (wrap_as_bm(this->context(), image, &bm)) {
1572 this->drawBitmapRect(draw, bm, src, dst, paint, constraint); 1572 this->drawBitmapRect(draw, bm, src, dst, paint, constraint);
1573 } 1573 }
1574 } 1574 }
1575 1575
1576 /////////////////////////////////////////////////////////////////////////////// 1576 ///////////////////////////////////////////////////////////////////////////////
1577 1577
1578 // must be in SkCanvas::VertexMode order 1578 // must be in SkCanvas::VertexMode order
1579 static const GrPrimitiveType gVertexMode2PrimitiveType[] = { 1579 static const GrPrimitiveType gVertexMode2PrimitiveType[] = {
1580 kTriangles_GrPrimitiveType, 1580 kTriangles_GrPrimitiveType,
1581 kTriangleStrip_GrPrimitiveType, 1581 kTriangleStrip_GrPrimitiveType,
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
1900 #endif 1900 #endif
1901 } 1901 }
1902 1902
1903 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() { 1903 SkImageFilter::Cache* SkGpuDevice::getImageFilterCache() {
1904 // We always return a transient cache, so it is freed after each 1904 // We always return a transient cache, so it is freed after each
1905 // filter traversal. 1905 // filter traversal.
1906 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize); 1906 return SkImageFilter::Cache::Create(kDefaultImageFilterCacheSize);
1907 } 1907 }
1908 1908
1909 #endif 1909 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698