| Index: include/gpu/GrTextContext.h
 | 
| diff --git a/include/gpu/GrTextContext.h b/include/gpu/GrTextContext.h
 | 
| index 3c61cbc80e25821405ba9dddb29135ae314c3f76..b367cf228d57fd5c0103cbb77332bc7b7a0dd4ae 100644
 | 
| --- a/include/gpu/GrTextContext.h
 | 
| +++ b/include/gpu/GrTextContext.h
 | 
| @@ -12,8 +12,6 @@
 | 
|  #include "GrGlyph.h"
 | 
|  #include "GrPaint.h"
 | 
|  
 | 
| -#include "SkPostConfig.h"
 | 
| -
 | 
|  class GrContext;
 | 
|  class GrDrawTarget;
 | 
|  class GrFontScaler;
 | 
| @@ -23,88 +21,20 @@
 | 
|   */
 | 
|  class GrTextContext {
 | 
|  public:
 | 
| -    virtual ~GrTextContext() {}
 | 
|      virtual void drawPackedGlyph(GrGlyph::PackedID, GrFixed left, GrFixed top,
 | 
|                                   GrFontScaler*) = 0;
 | 
|  
 | 
|  protected:
 | 
| -    GrTextContext(GrContext*, const GrPaint&, const SkPaint&);
 | 
| +    GrTextContext(GrContext*, const GrPaint&);
 | 
| +    virtual ~GrTextContext() {}
 | 
|  
 | 
|      GrPaint                fPaint;
 | 
| -    SkPaint                fSkPaint;
 | 
|      GrContext*             fContext;
 | 
|      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* context, const GrPaint& grPaint,
 | 
| -                                  const SkPaint& skPaint) = 0;
 | 
| -};
 | 
| -
 | 
| -template <class TextContextClass>
 | 
| -class GrTTextContextManager : public GrTextContextManager {
 | 
| -private:
 | 
| -    class ManagedTextContext : public TextContextClass {
 | 
| -    public:
 | 
| -        ~ManagedTextContext() {}
 | 
| -        
 | 
| -        ManagedTextContext(GrContext* context,
 | 
| -                           const GrPaint& grPaint,
 | 
| -                           const SkPaint& skPaint,
 | 
| -                           GrTTextContextManager<TextContextClass>* manager) :
 | 
| -        TextContextClass(context, grPaint, skPaint) {
 | 
| -            fManager = manager;
 | 
| -        }
 | 
| -
 | 
| -        static void operator delete(void* ptr) {
 | 
| -            if (ptr == NULL) {
 | 
| -                return;
 | 
| -            }
 | 
| -            ManagedTextContext* context = reinterpret_cast<ManagedTextContext*>(ptr);
 | 
| -            context->fManager->recycle(context);
 | 
| -        }
 | 
| -
 | 
| -        GrTTextContextManager<TextContextClass>* fManager;
 | 
| -    };
 | 
| -    
 | 
| -public:
 | 
| -    GrTTextContextManager() {
 | 
| -        fAllocation = sk_malloc_throw(sizeof(ManagedTextContext));
 | 
| -        fUsed = false;
 | 
| -    }
 | 
| -
 | 
| -    ~GrTTextContextManager() {
 | 
| -        SkASSERT(!fUsed);
 | 
| -        sk_free(fAllocation);
 | 
| -    }
 | 
| -
 | 
| -    GrTextContext* create(GrContext* context, const GrPaint& grPaint,
 | 
| -                          const SkPaint& skPaint) {
 | 
| -        // add check for usePath here?
 | 
| -        SkASSERT(!fUsed);
 | 
| -        ManagedTextContext* obj = SkNEW_PLACEMENT_ARGS(fAllocation, ManagedTextContext,
 | 
| -                                                       (context, grPaint, skPaint, this));
 | 
| -        fUsed = true;
 | 
| -        return obj;
 | 
| -    }
 | 
|  
 | 
|  private:
 | 
| -    void recycle(GrTextContext* textContext) {
 | 
| -        SkASSERT((void*)textContext == fAllocation);
 | 
| -        SkASSERT(fUsed);
 | 
| -        fUsed = false;
 | 
| -    }
 | 
| -
 | 
| -    void* fAllocation;
 | 
| -    bool  fUsed;
 | 
|  };
 | 
|  
 | 
|  #endif
 | 
| 
 |