diff --git a/gpu/GrBitmapTextContext.h b/gpu/GrBitmapTextContext.h
new file mode 100755
index 0000000..89672a8
--- /dev/null
+++ b/gpu/GrBitmapTextContext.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef GrBitmapTextContext_DEFINED
+#define GrBitmapTextContext_DEFINED
+
+#include "GrTextContext.h"
+
+class GrTextStrike;
+
+/*
+ * This class implements GrTextContext using standard bitmap fonts
+ */
+class GrBitmapTextContext : public GrTextContext {
+public:
+    GrBitmapTextContext(GrContext*, const GrPaint&);
+    virtual ~GrBitmapTextContext();
+
+    virtual void drawPackedGlyph(GrGlyph::PackedID, GrFixed left, GrFixed top,
+                         GrFontScaler*) SK_OVERRIDE;
+
+private:
+    GrContext::AutoMatrix  fAutoMatrix;
+    GrTextStrike*          fStrike;
+
+    void flushGlyphs();                 // automatically called by destructor
+
+    enum {
+        kMinRequestedGlyphs      = 1,
+        kDefaultRequestedGlyphs  = 64,
+        kMinRequestedVerts       = kMinRequestedGlyphs * 4,
+        kDefaultRequestedVerts   = kDefaultRequestedGlyphs * 4,
+    };
+
+    SkPoint*                fVertices;
+    int32_t                 fMaxVertices;
+    GrTexture*              fCurrTexture;
+    int                     fCurrVertex;
+};
+
+#endif
diff --git a/gpu/GrTextContext.h b/gpu/GrTextContext.h
index 5204da4..b367cf2 100644
--- a/gpu/GrTextContext.h
+++ b/gpu/GrTextContext.h
@@ -13,45 +13,28 @@
 #include "GrPaint.h"
 
 class GrContext;
-class GrTextStrike;
-class GrFontScaler;
 class GrDrawTarget;
+class GrFontScaler;
 
+/*
+ * This class wraps the state for a single text render
+ */
 class GrTextContext {
 public:
+    virtual void drawPackedGlyph(GrGlyph::PackedID, GrFixed left, GrFixed top,
+                                 GrFontScaler*) = 0;
+
+protected:
     GrTextContext(GrContext*, const GrPaint&);
-    ~GrTextContext();
+    virtual ~GrTextContext() {}
 
-    void drawPackedGlyph(GrGlyph::PackedID, GrFixed left, GrFixed top,
-                         GrFontScaler*);
+    GrPaint                fPaint;
+    GrContext*             fContext;
+    GrDrawTarget*          fDrawTarget;
 
-    void flush();   // optional; automatically called by destructor
+    SkIRect                fClipRect;
 
 private:
-    GrPaint         fPaint;
-    GrContext*      fContext;
-    GrDrawTarget*   fDrawTarget;
-
-    GrFontScaler*   fScaler;
-    GrTextStrike*   fStrike;
-
-    inline void flushGlyphs();
-    void setupDrawTarget();
-
-    enum {
-        kMinRequestedGlyphs      = 1,
-        kDefaultRequestedGlyphs  = 64,
-        kMinRequestedVerts       = kMinRequestedGlyphs * 4,
-        kDefaultRequestedVerts   = kDefaultRequestedGlyphs * 4,
-    };
-
-    SkPoint*                fVertices;
-    int32_t                 fMaxVertices;
-    GrTexture*              fCurrTexture;
-    int                     fCurrVertex;
-
-    SkIRect                 fClipRect;
-    GrContext::AutoMatrix   fAutoMatrix;
 };
 
 #endif
