| Index: src/gpu/gl/builders/GrGLNvprProgramBuilder.h
|
| diff --git a/src/gpu/gl/builders/GrGLNvprProgramBuilder.h b/src/gpu/gl/builders/GrGLNvprProgramBuilder.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cb1337521d9a6327b08c61a5abd3e20078ed3322
|
| --- /dev/null
|
| +++ b/src/gpu/gl/builders/GrGLNvprProgramBuilder.h
|
| @@ -0,0 +1,56 @@
|
| +/*
|
| + * Copyright 2014 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef GrGLNvprProgramBuilder_DEFINED
|
| +#define GrGLNvprProgramBuilder_DEFINED
|
| +
|
| +#include "GrGLProgramBuilder.h"
|
| +
|
| +class GrGLNvprProgramBuilder : public GrGLProgramBuilder {
|
| +public:
|
| + GrGLNvprProgramBuilder(GrGpuGL*, const GrOptDrawState&, const GrGLProgramDesc&);
|
| +
|
| + /*
|
| + * The separable varying info must be passed to GrGLProgram so this must
|
| + * be part of the public interface
|
| + */
|
| + struct SeparableVaryingInfo {
|
| + GrGLShaderVar fVariable;
|
| + GrGLint fLocation;
|
| + };
|
| +
|
| + typedef GrTAllocator<SeparableVaryingInfo> SeparableVaryingInfoArray;
|
| +
|
| + virtual GrGLProgram* createProgram(GrGLuint programID);
|
| +
|
| +private:
|
| + virtual void emitTransforms(const GrProcessorStage&,
|
| + GrGLProcessor::TransformedCoordsArray* outCoords,
|
| + GrGLInstalledProcessors*) SK_OVERRIDE;
|
| +
|
| + typedef GrGLInstalledProcessors::ShaderVarHandle ShaderVarHandle;
|
| +
|
| + /**
|
| + * Add a separable varying input variable to the current program.
|
| + * A separable varying (fragment shader input) is a varying that can be used also when vertex
|
| + * shaders are not used. With a vertex shader, the operation is same as with other
|
| + * varyings. Without a vertex shader, such as with NV_path_rendering, GL APIs are used to
|
| + * populate the variable. The APIs can refer to the variable through the returned handle.
|
| + */
|
| + ShaderVarHandle addSeparableVarying(GrSLType type,
|
| + const char* name,
|
| + const char** vsOutName,
|
| + const char** fsInName);
|
| +
|
| + void resolveSeparableVaryings(GrGLuint programId);
|
| +
|
| + SeparableVaryingInfoArray fSeparableVaryingInfos;
|
| +
|
| + typedef GrGLProgramBuilder INHERITED;
|
| +};
|
| +
|
| +#endif
|
|
|