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