diff --git a/src/gpu/GrCustomStage.cpp b/src/gpu/GrCustomStage.cpp
index 6d7bfad..7b3bc61 100644
--- a/src/gpu/GrCustomStage.cpp
+++ b/src/gpu/GrCustomStage.cpp
@@ -8,7 +8,6 @@
 #include "GrContext.h"
 #include "GrCustomStage.h"
 #include "GrMemoryPool.h"
-#include "SkString.h"
 #include "SkTLS.h"
 
 SK_DEFINE_INST_COUNT(GrCustomStage)
@@ -39,17 +38,6 @@
 int32_t GrProgramStageFactory::fCurrStageClassID =
                                     GrProgramStageFactory::kIllegalStageClassID;
 
-GrTextureAccess::GrTextureAccess(const GrTexture* texture, const SkString& swizzle)
-    : fTexture(texture) {
-    GrAssert(swizzle.size() <= 4);
-    for (unsigned int offset = 0; offset < swizzle.size(); ++offset) {
-        fSwizzle[offset] = swizzle[offset];
-    }
-    if (swizzle.size() < 4) {
-      fSwizzle[swizzle.size()] = 0;
-    }
-}
-
 GrCustomStage::GrCustomStage() {
 
 }
diff --git a/src/gpu/GrTextureAccess.cpp b/src/gpu/GrTextureAccess.cpp
new file mode 100644
index 0000000..155f682
--- /dev/null
+++ b/src/gpu/GrTextureAccess.cpp
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "GrTextureAccess.h"
+#include "SkString.h"
+
+GrTextureAccess::GrTextureAccess(const GrTexture* texture, const SkString& swizzle)
+    : fTexture(texture) {
+    GrAssert(swizzle.size() <= 4);
+    for (unsigned int offset = 0; offset < swizzle.size(); ++offset) {
+        fSwizzle[offset] = swizzle[offset];
+    }
+    if (swizzle.size() < 4) {
+      fSwizzle[swizzle.size()] = 0;
+    }
+}
+
