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