diff options
author | 2015-12-08 18:53:44 -0800 | |
---|---|---|
committer | 2015-12-08 18:53:44 -0800 | |
commit | 0671b967eb02d44c8951dc4dc39df09fac15b097 (patch) | |
tree | b03f60a7eefee024cf92361680326eac695c931d /src | |
parent | 55462e5f50f713af731d8c07383c43ec53885d00 (diff) |
Move texture drawing utility method to SkGpuDevice
BUG=skia:4542
Review URL: https://codereview.chromium.org/1506203002
Diffstat (limited to 'src')
-rw-r--r-- | src/gpu/GrTest.cpp | 28 | ||||
-rw-r--r-- | src/gpu/SkGpuDevice.h | 3 |
2 files changed, 17 insertions, 14 deletions
diff --git a/src/gpu/GrTest.cpp b/src/gpu/GrTest.cpp index e7b2ae7699..755fabc215 100644 --- a/src/gpu/GrTest.cpp +++ b/src/gpu/GrTest.cpp @@ -16,6 +16,8 @@ #include "GrGpuResourceCacheAccess.h" #include "GrResourceCache.h" #include "GrTextBlobCache.h" + +#include "SkGpuDevice.h" #include "SkGrPriv.h" #include "SkString.h" @@ -137,35 +139,33 @@ void GrContext::printGpuStats() const { SkDebugf("%s", out.c_str()); } -void GrContext::drawFontCache(const SkRect& rect, GrMaskFormat format, const SkPaint& paint, - GrRenderTarget* target) { +GrTexture* GrContext::getFontAtlasTexture(GrMaskFormat format) { GrBatchFontCache* cache = this->getBatchFontCache(); - GrTexture* atlas = cache->getTexture(format); - - SkAutoTUnref<GrDrawContext> drawContext(this->drawContext(target)); - // TODO: add drawContext method to encapsulate this. + return cache->getTexture(format); +} +void SkGpuDevice::drawTexture(GrTexture* tex, const SkRect& dst, const SkPaint& paint) { GrPaint grPaint; SkMatrix mat; mat.reset(); - if (!SkPaintToGrPaint(this, paint, mat, &grPaint)) { + if (!SkPaintToGrPaint(this->context(), paint, mat, &grPaint)) { return; } SkMatrix textureMat; textureMat.reset(); - // TODO: use setScaleTranslate() - textureMat[SkMatrix::kMScaleX] = 1.0f/rect.width(); - textureMat[SkMatrix::kMScaleY] = 1.0f/rect.height(); - textureMat[SkMatrix::kMTransX] = -rect.fLeft/rect.width(); - textureMat[SkMatrix::kMTransY] = -rect.fTop/rect.height(); + textureMat[SkMatrix::kMScaleX] = 1.0f/dst.width(); + textureMat[SkMatrix::kMScaleY] = 1.0f/dst.height(); + textureMat[SkMatrix::kMTransX] = -dst.fLeft/dst.width(); + textureMat[SkMatrix::kMTransY] = -dst.fTop/dst.height(); - grPaint.addColorTextureProcessor(atlas, textureMat); + grPaint.addColorTextureProcessor(tex, textureMat); GrClip clip; - drawContext->drawRect(clip, grPaint, mat, rect); + fDrawContext->drawRect(clip, grPaint, mat, dst); } + #if GR_GPU_STATS void GrGpu::Stats::dump(SkString* out) { out->appendf("Render Target Binds: %d\n", fRenderTargetBinds); diff --git a/src/gpu/SkGpuDevice.h b/src/gpu/SkGpuDevice.h index 5bf074d120..219b76573b 100644 --- a/src/gpu/SkGpuDevice.h +++ b/src/gpu/SkGpuDevice.h @@ -140,6 +140,9 @@ public: static SkImageFilter::Cache* NewImageFilterCache(); + // for debugging purposes only + void drawTexture(GrTexture*, const SkRect& dst, const SkPaint&); + protected: bool onReadPixels(const SkImageInfo&, void*, size_t, int, int) override; bool onWritePixels(const SkImageInfo&, const void*, size_t, int, int) override; |