Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Unified Diff: include/gpu/GrTextContext.h

Issue 145073005: Move GrTextContext to private interface (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Remove use of GrTextContext.h from GrSkGpuDevice.h Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/gpu/GrDistanceFieldTextContext.h ('k') | include/gpu/SkGpuDevice.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/gpu/GrTextContext.h
diff --git a/include/gpu/GrTextContext.h b/include/gpu/GrTextContext.h
deleted file mode 100644
index c572d0d016e264e2eeee34b654972ba6addecb77..0000000000000000000000000000000000000000
--- a/include/gpu/GrTextContext.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
- * Copyright 2010 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef GrTextContext_DEFINED
-#define GrTextContext_DEFINED
-
-#include "GrPoint.h"
-#include "GrGlyph.h"
-#include "GrPaint.h"
-#include "SkDeviceProperties.h"
-
-#include "SkPostConfig.h"
-
-class GrContext;
-class GrDrawTarget;
-class GrFontScaler;
-
-/*
- * This class wraps the state for a single text render
- */
-class GrTextContext {
-public:
- virtual ~GrTextContext() {}
- virtual void drawText(const char text[], size_t byteLength, SkScalar x, SkScalar y) = 0;
- virtual void drawPosText(const char text[], size_t byteLength,
- const SkScalar pos[], SkScalar constY,
- int scalarsPerPosition) = 0;
-
-protected:
- GrTextContext(GrContext*, const GrPaint&, const SkPaint&, const SkDeviceProperties&);
-
- static GrFontScaler* GetGrFontScaler(SkGlyphCache* cache);
- static void MeasureText(SkGlyphCache* cache, SkDrawCacheProc glyphCacheProc,
- const char text[], size_t byteLength, SkVector* stopVector);
-
- GrContext* fContext;
- GrPaint fPaint;
- SkPaint fSkPaint;
- SkDeviceProperties fDeviceProperties;
- GrDrawTarget* fDrawTarget;
-
- SkIRect fClipRect;
-};
-
-/*
- * These classes wrap the creation of a single text context for a given GPU device. The
- * assumption is that we'll only be using one text context at a time for that device.
- */
-class GrTextContextManager {
-public:
- virtual ~GrTextContextManager() {}
- virtual GrTextContext* create(GrContext* grContext, const GrPaint& grPaint,
- const SkPaint& skPaint, const SkDeviceProperties& props) = 0;
- virtual bool canDraw(const SkPaint& paint, const SkMatrix& ctm) = 0;
-};
-
-template <class TextContextClass>
-class GrTTextContextManager : public GrTextContextManager {
-private:
- class ManagedTextContext : public TextContextClass {
- public:
- virtual ~ManagedTextContext() {}
-
- ManagedTextContext(GrContext* grContext,
- const GrPaint& grPaint,
- const SkPaint& skPaint,
- const SkDeviceProperties& properties,
- GrTTextContextManager<TextContextClass>* manager) :
- TextContextClass(grContext, grPaint, skPaint, properties) {
- fManager = manager;
- }
-
- static void operator delete(void* ptr) {
- if (ptr == NULL) {
- return;
- }
- ManagedTextContext* context = reinterpret_cast<ManagedTextContext*>(ptr);
- context->fManager->recycle(context);
- }
-
- static void operator delete(void*, void*) {
- }
-
- GrTTextContextManager<TextContextClass>* fManager;
- };
-
-public:
- GrTTextContextManager() {
- fAllocation = sk_malloc_throw(sizeof(ManagedTextContext));
- fUsed = false;
- }
-
- virtual ~GrTTextContextManager() {
- SkASSERT(!fUsed);
- sk_free(fAllocation);
- }
-
- virtual GrTextContext* create(GrContext* grContext, const GrPaint& grPaint,
- const SkPaint& skPaint, const SkDeviceProperties& properties)
- SK_OVERRIDE {
- // add check for usePath here?
- SkASSERT(!fUsed);
- ManagedTextContext* obj = SkNEW_PLACEMENT_ARGS(fAllocation, ManagedTextContext,
- (grContext, grPaint, skPaint, properties,
- this));
- fUsed = true;
- return obj;
- }
-
- virtual bool canDraw(const SkPaint& paint, const SkMatrix& ctm) SK_OVERRIDE {
- return TextContextClass::CanDraw(paint, ctm);
- }
-
-private:
- void recycle(GrTextContext* textContext) {
- SkASSERT((void*)textContext == fAllocation);
- SkASSERT(fUsed);
- fUsed = false;
- }
-
- void* fAllocation;
- bool fUsed;
-};
-
-#endif
« no previous file with comments | « include/gpu/GrDistanceFieldTextContext.h ('k') | include/gpu/SkGpuDevice.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698