Move the ability to access textures, buffers, and image storages out from GrProcessor.

GrXferProcessor can no longer use this functionality so it is moved to a new intermediate class inherited by GrFragmentProcessor and GrPrimitiveProcessor.

Change-Id: I4f30c89bdceb2d77b602bf0646107e0780881c26
Reviewed-on: https://skia-review.googlesource.com/11202
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index 29fe35c..e208e74 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -144,30 +144,29 @@
     }
 }
 
-void GrGLProgram::bindTextures(const GrProcessor& processor,
+void GrGLProgram::bindTextures(const GrResourceIOProcessor& processor,
                                bool allowSRGBInputs,
                                int* nextSamplerIdx) {
     for (int i = 0; i < processor.numTextureSamplers(); ++i) {
-        const GrProcessor::TextureSampler& sampler = processor.textureSampler(i);
+        const GrResourceIOProcessor::TextureSampler& sampler = processor.textureSampler(i);
         fGpu->bindTexture((*nextSamplerIdx)++, sampler.params(),
                           allowSRGBInputs, static_cast<GrGLTexture*>(sampler.texture()));
     }
     for (int i = 0; i < processor.numBuffers(); ++i) {
-        const GrProcessor::BufferAccess& access = processor.bufferAccess(i);
+        const GrResourceIOProcessor::BufferAccess& access = processor.bufferAccess(i);
         fGpu->bindTexelBuffer((*nextSamplerIdx)++, access.texelConfig(),
                               static_cast<GrGLBuffer*>(access.buffer()));
     }
     for (int i = 0; i < processor.numImageStorages(); ++i) {
-        const GrProcessor::ImageStorageAccess& access = processor.imageStorageAccess(i);
+        const GrResourceIOProcessor::ImageStorageAccess& access = processor.imageStorageAccess(i);
         fGpu->bindImageStorage((*nextSamplerIdx)++, access.ioType(),
                                static_cast<GrGLTexture *>(access.texture()));
     }
 }
 
-void GrGLProgram::generateMipmaps(const GrProcessor& processor,
-                                  bool allowSRGBInputs) {
+void GrGLProgram::generateMipmaps(const GrResourceIOProcessor& processor, bool allowSRGBInputs) {
     for (int i = 0; i < processor.numTextureSamplers(); ++i) {
-        const GrProcessor::TextureSampler& sampler = processor.textureSampler(i);
+        const GrResourceIOProcessor::TextureSampler& sampler = processor.textureSampler(i);
         fGpu->generateMipmaps(sampler.params(), allowSRGBInputs,
                               static_cast<GrGLTexture*>(sampler.texture()));
     }