1261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org/* 2261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org * Copyright 2013 Google Inc. 3261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org * 4261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 5261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org * found in the LICENSE file. 6261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org */ 7261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org 8249af15fb82833d2274850c589812b6e69df0033joshualitt#ifndef GrGLGeometryProcessor_DEFINED 9249af15fb82833d2274850c589812b6e69df0033joshualitt#define GrGLGeometryProcessor_DEFINED 10261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org 11b0a8a377f832c59cee939ad721e1f87d378b7142joshualitt#include "GrGLProcessor.h" 12261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org 13261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org/** 14261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org * If a GL effect needs a GrGLFullShaderBuilder* object to emit vertex code, then it must inherit 15261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org * from this class. Since paths don't have vertices, this class is only meant to be used internally 16261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org * by skia, for special cases. 17261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org */ 18b0a8a377f832c59cee939ad721e1f87d378b7142joshualittclass GrGLGeometryProcessor : public GrGLProcessor { 19261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.orgpublic: 20b0a8a377f832c59cee939ad721e1f87d378b7142joshualitt GrGLGeometryProcessor(const GrBackendProcessorFactory& factory) 21b0a8a377f832c59cee939ad721e1f87d378b7142joshualitt : INHERITED(factory) {} 22261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org 23261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org /** 24261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org * This is similar to emitCode() in the base class, except it takes a full shader builder. 25261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org * This allows the effect subclass to emit vertex code. 26261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org */ 2730ba436f04e61d4505fb854d5fc56079636e0788joshualitt virtual void emitCode(GrGLFullProgramBuilder* builder, 28b0a8a377f832c59cee939ad721e1f87d378b7142joshualitt const GrGeometryProcessor& geometryProcessor, 29b0a8a377f832c59cee939ad721e1f87d378b7142joshualitt const GrProcessorKey& key, 30261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org const char* outputColor, 31261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org const char* inputColor, 32261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org const TransformedCoordsArray& coords, 33261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org const TextureSamplerArray& samplers) = 0; 3430ba436f04e61d4505fb854d5fc56079636e0788joshualitt 35261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.orgprivate: 36b0a8a377f832c59cee939ad721e1f87d378b7142joshualitt typedef GrGLProcessor INHERITED; 37261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org}; 38261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org 39261dc569b6a53729bea6e4e7a0cf2afa980eb82dcommit-bot@chromium.org#endif 40