Home | History | Annotate | Download | only in gl
      1 /*
      2  * Copyright 2013 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 
      8 #ifndef GrGLGeometryProcessor_DEFINED
      9 #define GrGLGeometryProcessor_DEFINED
     10 
     11 #include "GrGLProcessor.h"
     12 
     13 /**
     14  * If a GL effect needs a GrGLFullShaderBuilder* object to emit vertex code, then it must inherit
     15  * from this class. Since paths don't have vertices, this class is only meant to be used internally
     16  * by skia, for special cases.
     17  */
     18 class GrGLGeometryProcessor : public GrGLProcessor {
     19 public:
     20     GrGLGeometryProcessor(const GrBackendProcessorFactory& factory)
     21         : INHERITED(factory) {}
     22 
     23     /**
     24      * This is similar to emitCode() in the base class, except it takes a full shader builder.
     25      * This allows the effect subclass to emit vertex code.
     26      */
     27     virtual void emitCode(GrGLFullProgramBuilder* builder,
     28                           const GrGeometryProcessor& geometryProcessor,
     29                           const GrProcessorKey& key,
     30                           const char* outputColor,
     31                           const char* inputColor,
     32                           const TransformedCoordsArray& coords,
     33                           const TextureSamplerArray& samplers) = 0;
     34 
     35 private:
     36     typedef GrGLProcessor INHERITED;
     37 };
     38 
     39 #endif
     40