| Index: src/gpu/SkGpuDevice.cpp
|
| diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
|
| index 0e91182f9d3f5fabbb0f26a44b00a0a10c27c948..5ba174cafcc53e9f483b7844c1f1d98b173629ac 100644
|
| --- a/src/gpu/SkGpuDevice.cpp
|
| +++ b/src/gpu/SkGpuDevice.cpp
|
| @@ -200,12 +200,6 @@
|
| fContext = context;
|
| fContext->ref();
|
|
|
| -#if SK_DISTANCEFIELD_FONTS
|
| - fTextContextManager = SkNEW(GrTTextContextManager<GrDistanceFieldTextContext>);
|
| -#else
|
| - fTextContextManager = SkNEW(GrTTextContextManager<GrBitmapTextContext>);
|
| -#endif
|
| -
|
| fRenderTarget = NULL;
|
| fNeedClear = false;
|
|
|
| @@ -241,12 +235,6 @@
|
| fContext = context;
|
| fContext->ref();
|
|
|
| -#if SK_DISTANCEFIELD_FONTS
|
| - fTextContextManager = SkNEW(GrTTextContextManager<GrDistanceFieldTextContext>);
|
| -#else
|
| - fTextContextManager = SkNEW(GrTTextContextManager<GrBitmapTextContext>);
|
| -#endif
|
| -
|
| fRenderTarget = NULL;
|
| fNeedClear = false;
|
|
|
| @@ -291,8 +279,6 @@
|
| if (fDrawProcs) {
|
| delete fDrawProcs;
|
| }
|
| -
|
| - delete fTextContextManager;
|
|
|
| // The GrContext takes a ref on the target. We don't want to cause the render
|
| // target to be unnecessarily kept alive.
|
| @@ -1834,15 +1820,13 @@
|
|
|
| SkDEBUGCODE(this->validate();)
|
|
|
| - SkAutoTDelete<GrTextContext> context(fTextContextManager->create(fContext, grPaint, paint));
|
| - GrDistanceFieldTextContext* dfContext =
|
| - static_cast<GrDistanceFieldTextContext*>(context.get());
|
| -
|
| - SkAutoGlyphCache autoCache(dfContext->getSkPaint(), &this->fLeakyProperties, NULL);
|
| + GrDistanceFieldTextContext context(fContext, grPaint, paint);
|
| +
|
| + SkAutoGlyphCache autoCache(context.getSkPaint(), &this->fLeakyProperties, NULL);
|
| SkGlyphCache* cache = autoCache.getCache();
|
| GrFontScaler* fontScaler = get_gr_font_scaler(cache);
|
|
|
| - dfContext->drawText((const char *)text, byteLength, x, y, cache, fontScaler);
|
| + context.drawText((const char *)text, byteLength, x, y, cache, fontScaler);
|
| #endif
|
| } else {
|
| SkDraw myDraw(draw);
|
| @@ -1852,8 +1836,8 @@
|
| return;
|
| }
|
|
|
| - SkAutoTDelete<GrTextContext> context(fTextContextManager->create(fContext, grPaint, paint));
|
| - myDraw.fProcs = this->initDrawForText(context.get());
|
| + GrBitmapTextContext context(fContext, grPaint, paint.getColor());
|
| + myDraw.fProcs = this->initDrawForText(&context);
|
| this->INHERITED::drawText(myDraw, text, byteLength, x, y, paint);
|
| }
|
| }
|
| @@ -1877,15 +1861,13 @@
|
|
|
| SkDEBUGCODE(this->validate();)
|
|
|
| - SkAutoTDelete<GrTextContext> context(fTextContextManager->create(fContext, grPaint, paint));
|
| - GrDistanceFieldTextContext* dfContext =
|
| - static_cast<GrDistanceFieldTextContext*>(context.get());
|
| -
|
| - SkAutoGlyphCache autoCache(dfContext->getSkPaint(), &this->fLeakyProperties, NULL);
|
| + GrDistanceFieldTextContext context(fContext, grPaint, paint);
|
| +
|
| + SkAutoGlyphCache autoCache(context.getSkPaint(), &this->fLeakyProperties, NULL);
|
| SkGlyphCache* cache = autoCache.getCache();
|
| GrFontScaler* fontScaler = get_gr_font_scaler(cache);
|
| -
|
| - dfContext->drawPosText((const char *)text, byteLength, pos, constY, scalarsPerPos,
|
| +
|
| + context.drawPosText((const char *)text, byteLength, pos, constY, scalarsPerPos,
|
| cache, fontScaler);
|
| #endif
|
| } else {
|
| @@ -1895,9 +1877,8 @@
|
| if (!skPaint2GrPaintShader(this, paint, true, &grPaint)) {
|
| return;
|
| }
|
| -
|
| - SkAutoTDelete<GrTextContext> context(fTextContextManager->create(fContext, grPaint, paint));
|
| - myDraw.fProcs = this->initDrawForText(context.get());
|
| + GrBitmapTextContext context(fContext, grPaint, paint.getColor());
|
| + myDraw.fProcs = this->initDrawForText(&context);
|
| this->INHERITED::drawPosText(myDraw, text, byteLength, pos, constY,
|
| scalarsPerPos, paint);
|
| }
|
|
|