| Index: src/gpu/SkGpuDevice.cpp
|
| diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
|
| index beed2fab286bcd88a16d62168b7d1b5727a30e7e..c4ed0f9e2de4b72c038075366f1bc92452cc8523 100644
|
| --- a/src/gpu/SkGpuDevice.cpp
|
| +++ b/src/gpu/SkGpuDevice.cpp
|
| @@ -10,6 +10,7 @@
|
| #include "GrBlurUtils.h"
|
| #include "GrContext.h"
|
| #include "GrDrawContext.h"
|
| +#include "GrFontScaler.h"
|
| #include "GrGpu.h"
|
| #include "GrGpuResourcePriv.h"
|
| #include "GrLayerHoister.h"
|
| @@ -19,6 +20,7 @@
|
| #include "GrTracing.h"
|
| #include "SkCanvasPriv.h"
|
| #include "SkDeviceImageFilterProxy.h"
|
| +#include "SkDeviceProperties.h"
|
| #include "SkDrawProcs.h"
|
| #include "SkErrorInternals.h"
|
| #include "SkGlyphCache.h"
|
| @@ -138,7 +140,7 @@ static SkDeviceProperties surfaceprops_to_deviceprops(const SkSurfaceProps* prop
|
| if (props) {
|
| return SkDeviceProperties(props->pixelGeometry());
|
| } else {
|
| - return SkDeviceProperties(SkDeviceProperties::kLegacyLCD_InitType);
|
| + return SkDeviceProperties();
|
| }
|
| }
|
|
|
| @@ -168,8 +170,7 @@ SkGpuDevice::SkGpuDevice(GrRenderTarget* rt, int width, int height,
|
| fLegacyBitmap.setPixelRef(pr)->unref();
|
|
|
| bool useDFT = fSurfaceProps.isUseDistanceFieldFonts();
|
| - fTextContext = fContext->createTextContext(fRenderTarget, this->getLeakyProperties(), useDFT);
|
| - fDrawContext.reset(SkRef(fContext->drawContext()));
|
| + fDrawContext.reset(SkRef(fContext->drawContext(&this->getLeakyProperties(), useDFT)));
|
| }
|
|
|
| GrRenderTarget* SkGpuDevice::CreateRenderTarget(GrContext* context, SkSurface::Budgeted budgeted,
|
| @@ -228,8 +229,6 @@ SkGpuDevice::~SkGpuDevice() {
|
| delete fDrawProcs;
|
| }
|
|
|
| - SkDELETE(fTextContext);
|
| -
|
| fRenderTarget->unref();
|
| fContext->unref();
|
| }
|
| @@ -347,7 +346,9 @@ void SkGpuDevice::replaceRenderTarget(bool shouldRetainContent) {
|
| SkPixelRef* pr = SkNEW_ARGS(SkGrPixelRef, (fRenderTarget->surfacePriv().info(), fRenderTarget));
|
| fLegacyBitmap.setPixelRef(pr)->unref();
|
|
|
| - fDrawContext.reset(SkRef(fRenderTarget->getContext()->drawContext()));
|
| + bool useDFT = fSurfaceProps.isUseDistanceFieldFonts();
|
| + fDrawContext.reset(SkRef(fRenderTarget->getContext()->drawContext(&this->getLeakyProperties(),
|
| + useDFT)));
|
| }
|
|
|
| ///////////////////////////////////////////////////////////////////////////////
|
| @@ -1630,7 +1631,7 @@ void SkGpuDevice::drawText(const SkDraw& draw, const void* text,
|
|
|
| SkDEBUGCODE(this->validate();)
|
|
|
| - fTextContext->drawText(fRenderTarget, fClip, grPaint, paint, *draw.fMatrix,
|
| + fDrawContext->drawText(fRenderTarget, fClip, grPaint, paint, *draw.fMatrix,
|
| (const char *)text, byteLength, x, y, draw.fClip->getBounds());
|
| }
|
|
|
| @@ -1647,7 +1648,7 @@ void SkGpuDevice::drawPosText(const SkDraw& draw, const void* text, size_t byteL
|
|
|
| SkDEBUGCODE(this->validate();)
|
|
|
| - fTextContext->drawPosText(fRenderTarget, fClip, grPaint, paint, *draw.fMatrix,
|
| + fDrawContext->drawPosText(fRenderTarget, fClip, grPaint, paint, *draw.fMatrix,
|
| (const char *)text, byteLength, pos, scalarsPerPos, offset,
|
| draw.fClip->getBounds());
|
| }
|
| @@ -1659,7 +1660,7 @@ void SkGpuDevice::drawTextBlob(const SkDraw& draw, const SkTextBlob* blob, SkSca
|
|
|
| SkDEBUGCODE(this->validate();)
|
|
|
| - fTextContext->drawTextBlob(fRenderTarget, fClip, paint, *draw.fMatrix,
|
| + fDrawContext->drawTextBlob(fRenderTarget, fClip, paint, *draw.fMatrix,
|
| blob, x, y, drawFilter, draw.fClip->getBounds());
|
| }
|
|
|
|
|