diff --git a/Makefile b/Makefile
index 468ff41..e8d6a9b 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,8 @@
 # setup our defaults
 CC := gcc
 GPP := g++
-C_INCLUDES := -Iinclude/config -Iinclude/core -Iinclude/effects -Iinclude/images -Iinclude/utils
+C_INCLUDES := -Iinclude/config -Iinclude/core -Iinclude/effects -Iinclude/images -Iinclude/gpu -Iinclude/utils -Igpu/include
+
 CFLAGS := -Wall -O2 
 CFLAGS_SSE2 = $(CFLAGS) -msse2
 LINKER_OPTS := -lpthread -lz
@@ -53,6 +54,14 @@
 include src/utils/utils_files.mk
 SRC_LIST += $(addprefix src/utils/, $(SOURCE))
 
+# GPU files
+include gpu/src/gr_files.mk
+SRC_LIST += $(addprefix gpu/src/, $(SOURCE))
+
+# GPU support files
+include src/gpu/skgr_files.mk
+SRC_LIST += $(addprefix src/gpu/, $(SOURCE))
+
 # pdf backend files
 ifeq ($(SKIA_PDF_SUPPORT),true)
 	C_INCLUDES += -Iinclude/pdf
@@ -77,6 +86,7 @@
 	C_INCLUDES += -Iinclude/utils/mac
 	SRC_LIST += src/ports/SkImageDecoder_CG.cpp
 	SRC_LIST += src/utils/mac/SkCreateCGImageRef.cpp
+	SRC_LIST += src/utils/mac/SkEGLContext_mac.cpp
 	SRC_LIST += src/ports/SkFontHost_mac_coretext.cpp
 else
 	LINKER_OPTS += -lpng -lfreetype
@@ -203,7 +213,7 @@
 
 gm: $(GM_OBJS) out/libskia.a
 	@echo "linking gm..."
-	$(HIDE)$(GPP) $(GM_OBJS) out/libskia.a -o out/gm/gm $(LINKER_OPTS)
+	$(HIDE)$(GPP) $(GM_OBJS) out/libskia.a -o out/gm/gm -framework OpenGL -framework AGL $(LINKER_OPTS)
 
 SAMPLEPDF_SRCS := samplepdf.cpp
 
diff --git a/gm/gmmain.cpp b/gm/gmmain.cpp
index c56edbd..5c9dcab 100644
--- a/gm/gmmain.cpp
+++ b/gm/gmmain.cpp
@@ -6,6 +6,11 @@
 #include "SkStream.h"
 #include "SkRefCnt.h"
 
+#include "GrContext.h"
+#include "SkGpuCanvas.h"
+#include "SkEGLContext.h"
+#include "SkDevice.h"
+
 #ifdef SK_SUPPORT_PDF
 	#include "SkPDFDevice.h"
 	#include "SkPDFDocument.h"
@@ -210,7 +215,12 @@
             }
 		}
 	}
-    
+
+    // setup a GL context for drawing offscreen
+    SkEGLContext eglContext;
+    eglContext.init(1024, 1024);
+    GrContext* context = GrContext::CreateGLShaderContext();
+
     Iter iter;
     GM* gm;
 
@@ -233,7 +243,12 @@
 			SkCanvas canvas(bitmap);
 
 			gm->draw(&canvas);
-
+            {
+                SkGpuCanvas gc(context);
+                gc.setDevice(gc.createDevice(bitmap.config(), bitmap.width(), bitmap.height(),
+                                             bitmap.isOpaque(), false))->unref(); 
+                gm->draw(&gc);
+            }
             SkString name = make_name(gm->shortName(), gRec[i].fName);
 
             if (writePath) {
diff --git a/gpu/include/GrContext.h b/gpu/include/GrContext.h
index f9d5ed5..68f8f7e 100644
--- a/gpu/include/GrContext.h
+++ b/gpu/include/GrContext.h
@@ -1,19 +1,19 @@
-/*
-    Copyright 2010 Google Inc.
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
- */
-
+/*
+    Copyright 2010 Google Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+ */
+
 #ifndef GrContext_DEFINED
 #define GrContext_DEFINED
 
@@ -37,6 +37,11 @@
     static GrContext* Create(GrGpu::Engine engine,
                              GrGpu::Platform3DContext context3D);
 
+    /**
+     *  Helper to create a opengl-shader based context
+     */
+    static GrContext* CreateGLShaderContext();
+    
     virtual ~GrContext();
 
     /**
@@ -319,4 +324,4 @@
 };
 
 #endif
-
+
diff --git a/gpu/src/GrContext.cpp b/gpu/src/GrContext.cpp
index 6e94ef7..942afa3 100644
--- a/gpu/src/GrContext.cpp
+++ b/gpu/src/GrContext.cpp
@@ -1,19 +1,19 @@
-/*
-    Copyright 2010 Google Inc.
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
- */
-
+/*
+    Copyright 2010 Google Inc.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+ */
+
 
 #include "GrContext.h"
 #include "GrTextureCache.h"
@@ -49,6 +49,10 @@
     return ctx;
 }
 
+GrContext* GrContext::CreateGLShaderContext() {
+    return GrContext::Create(GrGpu::kOpenGL_Shaders_Engine, NULL);
+}
+
 GrContext::~GrContext() {
     fGpu->unref();
     delete fTextureCache;
@@ -1037,4 +1041,4 @@
 
 
 
-
+
diff --git a/gpu/include/SkGpuCanvas.h b/include/gpu/SkGpuCanvas.h
similarity index 100%
rename from gpu/include/SkGpuCanvas.h
rename to include/gpu/SkGpuCanvas.h
diff --git a/gpu/src/skia/SkGpuDevice.h b/include/gpu/SkGpuDevice.h
similarity index 100%
rename from gpu/src/skia/SkGpuDevice.h
rename to include/gpu/SkGpuDevice.h
diff --git a/gpu/include/SkGr.h b/include/gpu/SkGr.h
similarity index 100%
rename from gpu/include/SkGr.h
rename to include/gpu/SkGr.h
diff --git a/gpu/include/SkGrTexturePixelRef.h b/include/gpu/SkGrTexturePixelRef.h
similarity index 100%
rename from gpu/include/SkGrTexturePixelRef.h
rename to include/gpu/SkGrTexturePixelRef.h
diff --git a/include/utils/SkEGLContext.h b/include/utils/SkEGLContext.h
index 98eeec4..4b17be1 100644
--- a/include/utils/SkEGLContext.h
+++ b/include/utils/SkEGLContext.h
@@ -1,6 +1,11 @@
+#ifndef SkEGLContext_DEFINED
+#define SkEGLContext_DEFINED
 
-#include <AGL/agl.h>
+#include "SkTypes.h"
 
+/**
+ *  Create an offscreen opengl context
+ */
 class SkEGLContext {
 public:
 	SkEGLContext();
@@ -9,61 +14,7 @@
 	bool init(int width, int height);
 
 private:
-	AGLContext	fAGLContext;
+	void* fContext;
 };
 
-SkEGLContext::SkEGLContext() : fAGLContext(NULL) {
-}
-
-SkEGLContext::~SkEGLContext() {
-	if (fAGLContext) {
-		aglDestroyContext(fAGLContext);
-	}
-}
-
-bool SkEGLContext::init(int width, int height) {
-	GLint major, minor;
-	AGLContext ctx;
-
-	aglGetVersion(&major, &minor);
-	SkDebugf("---- agl version %d %d\n", major, minor);
-
-	const GLint pixelAttrs[] = {
-		AGL_RGBA,
-		AGL_STENCIL_SIZE, 8,
-/*
-		AGL_SAMPLE_BUFFERS_ARB, 1,
-		AGL_MULTISAMPLE,
-		AGL_SAMPLES_ARB, 2,
-*/
-		AGL_ACCELERATED,
-		AGL_NONE
-	};
-	AGLPixelFormat format = aglChoosePixelFormat(NULL, 0, pixelAttrs);
-	//AGLPixelFormat format = aglCreatePixelFormat(pixelAttrs);
-	SkDebugf("----- agl format %p\n", format);
-	ctx = aglCreateContext(format, NULL);
-	SkDebugf("----- agl context %p\n", ctx);
-	aglDestroyPixelFormat(format);
-
-	SkDebugf("---- sizeof aglcontext %d\n", sizeof(AGLContext));
-/*
-	static const GLint interval = 1;
-	aglSetInteger(ctx, AGL_SWAP_INTERVAL, &interval);
-*/
-
-	aglSetCurrentContext(ctx);
-	fAGLContext = ctx;
-
-	// Now create our FBO render target
-
-	GLuint fboID;
-	GLuint cbID;
-	glGenFramebuffersEXT(1, &fboID);
-	glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboID);
-	glGenRenderbuffers(1, &cbID);
-	glBindRenderbuffer(GL_RENDERBUFFER, cbID);
-	glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, width, height);
-	glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, cbID);
-	return true;
-}
+#endif
diff --git a/gpu/src/GrPrintf_skia.cpp b/src/gpu/GrPrintf_skia.cpp
similarity index 100%
rename from gpu/src/GrPrintf_skia.cpp
rename to src/gpu/GrPrintf_skia.cpp
diff --git a/gpu/src/skia/SkGpuCanvas.cpp b/src/gpu/SkGpuCanvas.cpp
similarity index 100%
rename from gpu/src/skia/SkGpuCanvas.cpp
rename to src/gpu/SkGpuCanvas.cpp
diff --git a/gpu/src/skia/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
similarity index 100%
rename from gpu/src/skia/SkGpuDevice.cpp
rename to src/gpu/SkGpuDevice.cpp
diff --git a/gpu/src/skia/SkGr.cpp b/src/gpu/SkGr.cpp
similarity index 100%
rename from gpu/src/skia/SkGr.cpp
rename to src/gpu/SkGr.cpp
diff --git a/gpu/src/skia/SkGrFontScaler.cpp b/src/gpu/SkGrFontScaler.cpp
similarity index 100%
rename from gpu/src/skia/SkGrFontScaler.cpp
rename to src/gpu/SkGrFontScaler.cpp
diff --git a/gpu/src/skia/SkGrTexturePixelRef.cpp b/src/gpu/SkGrTexturePixelRef.cpp
similarity index 100%
rename from gpu/src/skia/SkGrTexturePixelRef.cpp
rename to src/gpu/SkGrTexturePixelRef.cpp
diff --git a/gpu/src/skia/skgr_files.mk b/src/gpu/skgr_files.mk
similarity index 68%
rename from gpu/src/skia/skgr_files.mk
rename to src/gpu/skgr_files.mk
index 41896c0..7623fca 100644
--- a/gpu/src/skia/skgr_files.mk
+++ b/src/gpu/skgr_files.mk
@@ -3,5 +3,6 @@
     SkGpuDevice.cpp \
     SkGr.cpp \
     SkGrTexturePixelRef.cpp \
-    SkGrFontScaler.cpp
+    SkGrFontScaler.cpp \
+    GrPrintf_skia.cpp
 
diff --git a/src/utils/mac/SkEGLContext_mac.cpp b/src/utils/mac/SkEGLContext_mac.cpp
new file mode 100644
index 0000000..13bb592
--- /dev/null
+++ b/src/utils/mac/SkEGLContext_mac.cpp
@@ -0,0 +1,65 @@
+#include "SkEGLContext.h"
+#include <AGL/agl.h>
+
+SkEGLContext::SkEGLContext() : fContext(NULL) {
+}
+
+SkEGLContext::~SkEGLContext() {
+	if (fContext) {
+		aglDestroyContext((AGLContext)fContext);
+	}
+}
+
+bool SkEGLContext::init(int width, int height) {
+	GLint major, minor;
+	AGLContext ctx;
+
+	aglGetVersion(&major, &minor);
+	SkDebugf("---- agl version %d %d\n", major, minor);
+
+	const GLint pixelAttrs[] = {
+		AGL_RGBA,
+		AGL_STENCIL_SIZE, 8,
+/*
+		AGL_SAMPLE_BUFFERS_ARB, 1,
+		AGL_MULTISAMPLE,
+		AGL_SAMPLES_ARB, 2,
+*/
+		AGL_ACCELERATED,
+		AGL_NONE
+	};
+	AGLPixelFormat format = aglChoosePixelFormat(NULL, 0, pixelAttrs);
+	//AGLPixelFormat format = aglCreatePixelFormat(pixelAttrs);
+	SkDebugf("----- agl format %p\n", format);
+	ctx = aglCreateContext(format, NULL);
+	SkDebugf("----- agl context %p\n", ctx);
+	aglDestroyPixelFormat(format);
+
+	SkDebugf("---- sizeof aglcontext %d\n", sizeof(AGLContext));
+/*
+	static const GLint interval = 1;
+	aglSetInteger(ctx, AGL_SWAP_INTERVAL, &interval);
+*/
+
+	aglSetCurrentContext(ctx);
+	fContext = (void*)ctx;
+
+	// Now create our FBO render target
+
+	GLuint fboID;
+	GLuint cbID;
+    GLuint dsID;
+	glGenFramebuffersEXT(1, &fboID);
+	glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fboID);
+	glGenRenderbuffers(1, &cbID);
+	glBindRenderbuffer(GL_RENDERBUFFER, cbID);
+	glRenderbufferStorage(GL_RENDERBUFFER, GL_RGBA, width, height);
+	glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, cbID);
+    glGenRenderbuffers(1, &dsID);
+    glBindRenderbuffer(GL_RENDERBUFFER, dsID);
+    glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_STENCIL, width, height);
+    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_DEPTH_STENCIL_ATTACHMENT, GL_RENDERBUFFER, dsID);
+    
+    GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
+    return GL_FRAMEBUFFER_COMPLETE == status;
+}
diff --git a/xcode/gpu/gpu.xcodeproj/project.pbxproj b/xcode/gpu/gpu.xcodeproj/project.pbxproj
index 08299d7..f7f672a 100644
--- a/xcode/gpu/gpu.xcodeproj/project.pbxproj
+++ b/xcode/gpu/gpu.xcodeproj/project.pbxproj
@@ -30,7 +30,6 @@
 		00115E1E12C1167A008296FE /* GrMatrix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115DEE12C1167A008296FE /* GrMatrix.cpp */; };
 		00115E1F12C1167A008296FE /* GrMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115DEF12C1167A008296FE /* GrMemory.cpp */; };
 		00115E2012C1167A008296FE /* GrPath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115DF012C1167A008296FE /* GrPath.cpp */; };
-		00115E2112C1167A008296FE /* GrPrintf_printf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115DF112C1167A008296FE /* GrPrintf_printf.cpp */; };
 		00115E2412C1167A008296FE /* GrRectanizer_fifo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115DF412C1167A008296FE /* GrRectanizer_fifo.cpp */; };
 		00115E2512C1167A008296FE /* GrRectanizer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115DF512C1167A008296FE /* GrRectanizer.cpp */; };
 		00115E2612C1167A008296FE /* GrTextContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115DF612C1167A008296FE /* GrTextContext.cpp */; };
@@ -119,7 +118,6 @@
 		00115DEE12C1167A008296FE /* GrMatrix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrMatrix.cpp; path = ../../gpu/src/GrMatrix.cpp; sourceTree = SOURCE_ROOT; };
 		00115DEF12C1167A008296FE /* GrMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrMemory.cpp; path = ../../gpu/src/GrMemory.cpp; sourceTree = SOURCE_ROOT; };
 		00115DF012C1167A008296FE /* GrPath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrPath.cpp; path = ../../gpu/src/GrPath.cpp; sourceTree = SOURCE_ROOT; };
-		00115DF112C1167A008296FE /* GrPrintf_printf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrPrintf_printf.cpp; path = ../../gpu/src/GrPrintf_printf.cpp; sourceTree = SOURCE_ROOT; };
 		00115DF412C1167A008296FE /* GrRectanizer_fifo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrRectanizer_fifo.cpp; path = ../../gpu/src/GrRectanizer_fifo.cpp; sourceTree = SOURCE_ROOT; };
 		00115DF512C1167A008296FE /* GrRectanizer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrRectanizer.cpp; path = ../../gpu/src/GrRectanizer.cpp; sourceTree = SOURCE_ROOT; };
 		00115DF612C1167A008296FE /* GrTextContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrTextContext.cpp; path = ../../gpu/src/GrTextContext.cpp; sourceTree = SOURCE_ROOT; };
@@ -295,7 +293,6 @@
 				00115DEE12C1167A008296FE /* GrMatrix.cpp */,
 				00115DEF12C1167A008296FE /* GrMemory.cpp */,
 				00115DF012C1167A008296FE /* GrPath.cpp */,
-				00115DF112C1167A008296FE /* GrPrintf_printf.cpp */,
 				00115DF412C1167A008296FE /* GrRectanizer_fifo.cpp */,
 				00115DF512C1167A008296FE /* GrRectanizer.cpp */,
 				00115DF612C1167A008296FE /* GrTextContext.cpp */,
@@ -460,7 +457,6 @@
 				00115E1E12C1167A008296FE /* GrMatrix.cpp in Sources */,
 				00115E1F12C1167A008296FE /* GrMemory.cpp in Sources */,
 				00115E2012C1167A008296FE /* GrPath.cpp in Sources */,
-				00115E2112C1167A008296FE /* GrPrintf_printf.cpp in Sources */,
 				00115E2412C1167A008296FE /* GrRectanizer_fifo.cpp in Sources */,
 				00115E2512C1167A008296FE /* GrRectanizer.cpp in Sources */,
 				00115E2612C1167A008296FE /* GrTextContext.cpp in Sources */,
diff --git a/xcode/sampleapp/SampleApp.xcodeproj/project.pbxproj b/xcode/sampleapp/SampleApp.xcodeproj/project.pbxproj
index 28d1fbf..b21d969 100644
--- a/xcode/sampleapp/SampleApp.xcodeproj/project.pbxproj
+++ b/xcode/sampleapp/SampleApp.xcodeproj/project.pbxproj
@@ -26,11 +26,7 @@
 		0001FB87110E35E500C1D647 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0001FB86110E35E500C1D647 /* AGL.framework */; };
 		0001FB8A110E35FA00C1D647 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0001FB89110E35FA00C1D647 /* OpenGL.framework */; };
 		00115EC912C11783008296FE /* libgpu.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00115EC812C11771008296FE /* libgpu.a */; };
-		00115ED312C117BD008296FE /* SkGpuCanvas.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115ECD12C117BD008296FE /* SkGpuCanvas.cpp */; };
-		00115ED412C117BD008296FE /* SkGpuDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115ECE12C117BD008296FE /* SkGpuDevice.cpp */; };
-		00115ED512C117BD008296FE /* SkGr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115ED012C117BD008296FE /* SkGr.cpp */; };
-		00115ED612C117BD008296FE /* SkGrFontScaler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115ED112C117BD008296FE /* SkGrFontScaler.cpp */; };
-		00115ED712C117BD008296FE /* SkGrTexturePixelRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00115ED212C117BD008296FE /* SkGrTexturePixelRef.cpp */; };
+		0011612F12C2AAC6008296FE /* SampleText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000630AC10F4E8EF00BC2C23 /* SampleText.cpp */; };
 		001B871E1042184D00C84ED4 /* Forth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 001B871D1042184D00C84ED4 /* Forth.cpp */; };
 		0021F3A21120B29C0062682F /* SkStaticTextView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0021F3A11120B29C0062682F /* SkStaticTextView.cpp */; };
 		0021F3D31120B61F0062682F /* SampleUnitMapper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00995E1510A079D80054AD6D /* SampleUnitMapper.cpp */; };
@@ -78,6 +74,12 @@
 		009887F1106142FC0020D19B /* SampleNinePatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0041CE310F00A12400695E8C /* SampleNinePatch.cpp */; };
 		00995E0E10A078E30054AD6D /* SkCubicInterval.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00995E0D10A078E30054AD6D /* SkCubicInterval.cpp */; };
 		009CC9190F65918A002185BE /* SampleFontScalerTest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009CC9180F65918A002185BE /* SampleFontScalerTest.cpp */; };
+		009F9C0912C39A9C00C7FD4A /* GrPrintf_skia.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009F9C0312C39A9C00C7FD4A /* GrPrintf_skia.cpp */; };
+		009F9C0A12C39A9C00C7FD4A /* SkGpuCanvas.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009F9C0412C39A9C00C7FD4A /* SkGpuCanvas.cpp */; };
+		009F9C0B12C39A9C00C7FD4A /* SkGpuDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009F9C0512C39A9C00C7FD4A /* SkGpuDevice.cpp */; };
+		009F9C0C12C39A9C00C7FD4A /* SkGr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009F9C0612C39A9C00C7FD4A /* SkGr.cpp */; };
+		009F9C0D12C39A9C00C7FD4A /* SkGrFontScaler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009F9C0712C39A9C00C7FD4A /* SkGrFontScaler.cpp */; };
+		009F9C0E12C39A9C00C7FD4A /* SkGrTexturePixelRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 009F9C0812C39A9C00C7FD4A /* SkGrTexturePixelRef.cpp */; };
 		00A728270FD43D0400D5051F /* SampleMovie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2762F6760FCCCB01002BD8B4 /* SampleMovie.cpp */; };
 		00A7282F0FD43D3700D5051F /* SkMovie.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 00A7282D0FD43D3700D5051F /* SkMovie.cpp */; };
 		00A7295D0FD8397600D5051F /* SampleAll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2762F6740FCCCB01002BD8B4 /* SampleAll.cpp */; };
@@ -135,7 +137,6 @@
 		27CAAB7E119B303E0017B155 /* SkSVGText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27CAAB60119B303E0017B155 /* SkSVGText.cpp */; };
 		27CAAB7F119B303E0017B155 /* SkSVGUse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27CAAB62119B303E0017B155 /* SkSVGUse.cpp */; };
 		27CAAB96119B321A0017B155 /* SkXMLWriter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27CAAB95119B321A0017B155 /* SkXMLWriter.cpp */; };
-		27D0F3C311BD2012001B8EBE /* SampleText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 000630AC10F4E8EF00BC2C23 /* SampleText.cpp */; };
 		27E79E3512BC13C700BC0E57 /* SkPDFCatalog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27E79E2B12BC13C700BC0E57 /* SkPDFCatalog.cpp */; };
 		27E79E3612BC13C700BC0E57 /* SkPDFDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27E79E2C12BC13C700BC0E57 /* SkPDFDevice.cpp */; };
 		27E79E3712BC13C700BC0E57 /* SkPDFDocument.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27E79E2D12BC13C700BC0E57 /* SkPDFDocument.cpp */; };
@@ -248,12 +249,6 @@
 		000630AC10F4E8EF00BC2C23 /* SampleText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleText.cpp; path = ../../samplecode/SampleText.cpp; sourceTree = SOURCE_ROOT; };
 		0009E21F1057E96800B0DE6F /* SampleStrokePath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleStrokePath.cpp; path = ../../samplecode/SampleStrokePath.cpp; sourceTree = SOURCE_ROOT; };
 		00115EC012C11771008296FE /* gpu.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = gpu.xcodeproj; path = ../gpu/gpu.xcodeproj; sourceTree = SOURCE_ROOT; };
-		00115ECD12C117BD008296FE /* SkGpuCanvas.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGpuCanvas.cpp; path = ../../gpu/src/skia/SkGpuCanvas.cpp; sourceTree = SOURCE_ROOT; };
-		00115ECE12C117BD008296FE /* SkGpuDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGpuDevice.cpp; path = ../../gpu/src/skia/SkGpuDevice.cpp; sourceTree = SOURCE_ROOT; };
-		00115ECF12C117BD008296FE /* SkGpuDevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SkGpuDevice.h; path = ../../gpu/src/skia/SkGpuDevice.h; sourceTree = SOURCE_ROOT; };
-		00115ED012C117BD008296FE /* SkGr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGr.cpp; path = ../../gpu/src/skia/SkGr.cpp; sourceTree = SOURCE_ROOT; };
-		00115ED112C117BD008296FE /* SkGrFontScaler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGrFontScaler.cpp; path = ../../gpu/src/skia/SkGrFontScaler.cpp; sourceTree = SOURCE_ROOT; };
-		00115ED212C117BD008296FE /* SkGrTexturePixelRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGrTexturePixelRef.cpp; path = ../../gpu/src/skia/SkGrTexturePixelRef.cpp; sourceTree = SOURCE_ROOT; };
 		001B871D1042184D00C84ED4 /* Forth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Forth.cpp; path = ../../forth/Forth.cpp; sourceTree = SOURCE_ROOT; };
 		0021F3A11120B29C0062682F /* SkStaticTextView.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkStaticTextView.cpp; path = ../../src/views/SkStaticTextView.cpp; sourceTree = SOURCE_ROOT; };
 		00281C661083CF5100BCCB06 /* SkTextBox.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkTextBox.cpp; path = ../../src/views/SkTextBox.cpp; sourceTree = SOURCE_ROOT; };
@@ -310,6 +305,12 @@
 		00995E0D10A078E30054AD6D /* SkCubicInterval.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkCubicInterval.cpp; path = ../../src/utils/SkCubicInterval.cpp; sourceTree = SOURCE_ROOT; };
 		00995E1510A079D80054AD6D /* SampleUnitMapper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleUnitMapper.cpp; path = ../../samplecode/SampleUnitMapper.cpp; sourceTree = SOURCE_ROOT; };
 		009CC9180F65918A002185BE /* SampleFontScalerTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleFontScalerTest.cpp; path = ../../samplecode/SampleFontScalerTest.cpp; sourceTree = SOURCE_ROOT; };
+		009F9C0312C39A9C00C7FD4A /* GrPrintf_skia.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GrPrintf_skia.cpp; path = ../../src/gpu/GrPrintf_skia.cpp; sourceTree = SOURCE_ROOT; };
+		009F9C0412C39A9C00C7FD4A /* SkGpuCanvas.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGpuCanvas.cpp; path = ../../src/gpu/SkGpuCanvas.cpp; sourceTree = SOURCE_ROOT; };
+		009F9C0512C39A9C00C7FD4A /* SkGpuDevice.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGpuDevice.cpp; path = ../../src/gpu/SkGpuDevice.cpp; sourceTree = SOURCE_ROOT; };
+		009F9C0612C39A9C00C7FD4A /* SkGr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGr.cpp; path = ../../src/gpu/SkGr.cpp; sourceTree = SOURCE_ROOT; };
+		009F9C0712C39A9C00C7FD4A /* SkGrFontScaler.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGrFontScaler.cpp; path = ../../src/gpu/SkGrFontScaler.cpp; sourceTree = SOURCE_ROOT; };
+		009F9C0812C39A9C00C7FD4A /* SkGrTexturePixelRef.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkGrTexturePixelRef.cpp; path = ../../src/gpu/SkGrTexturePixelRef.cpp; sourceTree = SOURCE_ROOT; };
 		00A41E4A0EFC312F00C9CBEB /* SampleArc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SampleArc.cpp; path = ../../samplecode/SampleArc.cpp; sourceTree = SOURCE_ROOT; };
 		00A7282D0FD43D3700D5051F /* SkMovie.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkMovie.cpp; path = ../../src/images/SkMovie.cpp; sourceTree = SOURCE_ROOT; };
 		00A7282E0FD43D3700D5051F /* SkMovie_gif.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SkMovie_gif.cpp; path = ../../src/images/SkMovie_gif.cpp; sourceTree = SOURCE_ROOT; };
@@ -549,12 +550,12 @@
 		00115ECC12C117A3008296FE /* GPU */ = {
 			isa = PBXGroup;
 			children = (
-				00115ECD12C117BD008296FE /* SkGpuCanvas.cpp */,
-				00115ECE12C117BD008296FE /* SkGpuDevice.cpp */,
-				00115ECF12C117BD008296FE /* SkGpuDevice.h */,
-				00115ED012C117BD008296FE /* SkGr.cpp */,
-				00115ED112C117BD008296FE /* SkGrFontScaler.cpp */,
-				00115ED212C117BD008296FE /* SkGrTexturePixelRef.cpp */,
+				009F9C0312C39A9C00C7FD4A /* GrPrintf_skia.cpp */,
+				009F9C0412C39A9C00C7FD4A /* SkGpuCanvas.cpp */,
+				009F9C0512C39A9C00C7FD4A /* SkGpuDevice.cpp */,
+				009F9C0612C39A9C00C7FD4A /* SkGr.cpp */,
+				009F9C0712C39A9C00C7FD4A /* SkGrFontScaler.cpp */,
+				009F9C0812C39A9C00C7FD4A /* SkGrTexturePixelRef.cpp */,
 			);
 			name = GPU;
 			sourceTree = "<group>";
@@ -1001,7 +1002,6 @@
 				27433F3311A18EA60045AD84 /* SampleTextEffects.cpp in Sources */,
 				275E801611AAC2FF0051C03A /* SampleShapes.cpp in Sources */,
 				275E802311AAC3330051C03A /* SampleVertices.cpp in Sources */,
-				27D0F3C311BD2012001B8EBE /* SampleText.cpp in Sources */,
 				27E79E3512BC13C700BC0E57 /* SkPDFCatalog.cpp in Sources */,
 				27E79E3612BC13C700BC0E57 /* SkPDFDevice.cpp in Sources */,
 				27E79E3712BC13C700BC0E57 /* SkPDFDocument.cpp in Sources */,
@@ -1019,11 +1019,13 @@
 				27C4624F12BFB2C700DBB1F6 /* tilemodes.cpp in Sources */,
 				27C4625012BFB2C700DBB1F6 /* xfermodes.cpp in Sources */,
 				27C4625512BFB2F300DBB1F6 /* SampleGM.cpp in Sources */,
-				00115ED312C117BD008296FE /* SkGpuCanvas.cpp in Sources */,
-				00115ED412C117BD008296FE /* SkGpuDevice.cpp in Sources */,
-				00115ED512C117BD008296FE /* SkGr.cpp in Sources */,
-				00115ED612C117BD008296FE /* SkGrFontScaler.cpp in Sources */,
-				00115ED712C117BD008296FE /* SkGrTexturePixelRef.cpp in Sources */,
+				0011612F12C2AAC6008296FE /* SampleText.cpp in Sources */,
+				009F9C0912C39A9C00C7FD4A /* GrPrintf_skia.cpp in Sources */,
+				009F9C0A12C39A9C00C7FD4A /* SkGpuCanvas.cpp in Sources */,
+				009F9C0B12C39A9C00C7FD4A /* SkGpuDevice.cpp in Sources */,
+				009F9C0C12C39A9C00C7FD4A /* SkGr.cpp in Sources */,
+				009F9C0D12C39A9C00C7FD4A /* SkGrFontScaler.cpp in Sources */,
+				009F9C0E12C39A9C00C7FD4A /* SkGrTexturePixelRef.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
