Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / src / gpu / gl / GrGLGeometryProcessor.h
index b879e12..b61535e 100644 (file)
@@ -10,6 +10,8 @@
 
 #include "GrGLProcessor.h"
 
+class GrGLGPBuilder;
+
 /**
  * If a GL effect needs a GrGLFullShaderBuilder* object to emit vertex code, then it must inherit
  * from this class. Since paths don't have vertices, this class is only meant to be used internally
@@ -20,17 +22,26 @@ public:
     GrGLGeometryProcessor(const GrBackendProcessorFactory& factory)
         : INHERITED(factory) {}
 
+    struct EmitArgs {
+        EmitArgs(GrGLGPBuilder* pb,
+                 const GrGeometryProcessor& gp,
+                 const GrProcessorKey& key,
+                 const char* output,
+                 const char* input,
+                 const TextureSamplerArray& samplers)
+            : fPB(pb), fGP(gp), fKey(key), fOutput(output), fInput(input), fSamplers(samplers) {}
+        GrGLGPBuilder* fPB;
+        const GrGeometryProcessor& fGP;
+        const GrProcessorKey& fKey;
+        const char* fOutput;
+        const char* fInput;
+        const TextureSamplerArray& fSamplers;
+    };
     /**
      * This is similar to emitCode() in the base class, except it takes a full shader builder.
      * This allows the effect subclass to emit vertex code.
      */
-    virtual void emitCode(GrGLFullProgramBuilder* builder,
-                          const GrGeometryProcessor& geometryProcessor,
-                          const GrProcessorKey& key,
-                          const char* outputColor,
-                          const char* inputColor,
-                          const TransformedCoordsArray& coords,
-                          const TextureSamplerArray& samplers) = 0;
+    virtual void emitCode(const EmitArgs&) = 0;
 
 private:
     typedef GrGLProcessor INHERITED;