| 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));
|
| }
|
|
|