Chromium Code Reviews| Index: src/gpu/gl/builders/GrGLESNvprProgramBuilder.h |
| diff --git a/src/gpu/gl/builders/GrGLESNvprProgramBuilder.h b/src/gpu/gl/builders/GrGLESNvprProgramBuilder.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..4b2d3db4075571663bbaae3d1f15bd4bb58afcc0 |
| --- /dev/null |
| +++ b/src/gpu/gl/builders/GrGLESNvprProgramBuilder.h |
| @@ -0,0 +1,55 @@ |
| +/* |
| + * 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 GrGLESNvprProgramBuilder_DEFINED |
| +#define GrGLESNvprProgramBuilder_DEFINED |
| + |
| +#include "GrGLSkiaProgramBuilder.h" |
| + |
| +class GrGLESNvprProgramBuilder : public GrGLSkiaProgramBuilder { |
| +public: |
| + GrGLESNvprProgramBuilder(GrGpuGL* gpu, const GrGLProgramDesc& desc); |
| + |
| + /* |
| + * 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 |
|
bsalomon
2014/09/29 15:43:19
line up the start of each line with "Add..." (or m
joshua.litt
2014/09/29 21:05:22
Done.
|
| + * 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); |
| + |
| + virtual void resolveSeparableVaryings(GrGLuint programId) SK_OVERRIDE; |
| + |
| + SeparableVaryingInfoArray fSeparableVaryingInfos; |
| + |
| + typedef GrGLSkiaProgramBuilder INHERITED; |
| +}; |
| + |
| +#endif |