Index: src/image/SkSurface_Gpu.cpp |
diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp |
index 6f018bf258cc4baeb175718efba8c4870bd3c376..a34b774397b11e9539d5c67264fc24bbe1d4b426 100644 |
--- a/src/image/SkSurface_Gpu.cpp |
+++ b/src/image/SkSurface_Gpu.cpp |
@@ -14,7 +14,7 @@ class SkSurface_Gpu : public SkSurface_Base { |
public: |
SK_DECLARE_INST_COUNT(SkSurface_Gpu) |
- SkSurface_Gpu(GrRenderTarget*, bool cached); |
+ SkSurface_Gpu(GrRenderTarget*, bool cached, TextRenderMode trm); |
virtual ~SkSurface_Gpu(); |
virtual SkCanvas* onNewCanvas() SK_OVERRIDE; |
@@ -33,9 +33,12 @@ private: |
/////////////////////////////////////////////////////////////////////////////// |
-SkSurface_Gpu::SkSurface_Gpu(GrRenderTarget* renderTarget, bool cached) |
+SkSurface_Gpu::SkSurface_Gpu(GrRenderTarget* renderTarget, bool cached, TextRenderMode trm) |
: INHERITED(renderTarget->width(), renderTarget->height()) { |
- fDevice = SkGpuDevice::Create(renderTarget, cached ? SkGpuDevice::kCached_Flag : 0); |
+ int flags = 0; |
+ flags |= cached ? SkGpuDevice::kCached_Flag : 0; |
+ flags |= (kDistanceField_TextRenderMode == trm) ? SkGpuDevice::kDFFonts_Flag : 0; |
+ fDevice = SkGpuDevice::Create(renderTarget, flags); |
if (kRGB_565_GrPixelConfig != renderTarget->config()) { |
fDevice->clear(0x0); |
@@ -98,14 +101,15 @@ void SkSurface_Gpu::onDiscard() { |
/////////////////////////////////////////////////////////////////////////////// |
-SkSurface* SkSurface::NewRenderTargetDirect(GrRenderTarget* target) { |
+SkSurface* SkSurface::NewRenderTargetDirect(GrRenderTarget* target, TextRenderMode trm) { |
if (NULL == target) { |
return NULL; |
} |
- return SkNEW_ARGS(SkSurface_Gpu, (target, false)); |
+ return SkNEW_ARGS(SkSurface_Gpu, (target, false, trm)); |
} |
-SkSurface* SkSurface::NewRenderTarget(GrContext* ctx, const SkImageInfo& info, int sampleCount) { |
+SkSurface* SkSurface::NewRenderTarget(GrContext* ctx, const SkImageInfo& info, int sampleCount, |
+ TextRenderMode trm) { |
if (NULL == ctx) { |
return NULL; |
} |
@@ -122,10 +126,11 @@ SkSurface* SkSurface::NewRenderTarget(GrContext* ctx, const SkImageInfo& info, i |
return NULL; |
} |
- return SkNEW_ARGS(SkSurface_Gpu, (tex->asRenderTarget(), false)); |
+ return SkNEW_ARGS(SkSurface_Gpu, (tex->asRenderTarget(), false, trm)); |
} |
-SkSurface* SkSurface::NewScratchRenderTarget(GrContext* ctx, const SkImageInfo& info, int sampleCount) { |
+SkSurface* SkSurface::NewScratchRenderTarget(GrContext* ctx, const SkImageInfo& info, |
+ int sampleCount, TextRenderMode trm) { |
if (NULL == ctx) { |
return NULL; |
} |
@@ -143,5 +148,5 @@ SkSurface* SkSurface::NewScratchRenderTarget(GrContext* ctx, const SkImageInfo& |
return NULL; |
} |
- return SkNEW_ARGS(SkSurface_Gpu, (tex->asRenderTarget(), true)); |
+ return SkNEW_ARGS(SkSurface_Gpu, (tex->asRenderTarget(), true, trm)); |
} |