blob: 50a87adc033017dfa36bdbaeeeac5edf0469cd8f [file] [log] [blame]
egdaniel0eafe792015-11-20 14:01:22 -08001/*
2 * Copyright 2015 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 GrGLVaryingHandler_DEFINED
9#define GrGLVaryingHandler_DEFINED
10
11#include "glsl/GrGLSLVarying.h"
12#include "GrTypesPriv.h"
13#include "gl/GrGLProgramDataManager.h"
14
15class GrGLVaryingHandler : public GrGLSLVaryingHandler {
16public:
17 GrGLVaryingHandler(GrGLSLProgramBuilder* program)
18 : INHERITED(program),
19 fPathProcVaryingInfos(kVaryingsPerBlock) {}
20
21 // This function is used by the NVPR PathProcessor to add a varying directly into the fragment
22 // shader since there is no vertex shader.
23 VaryingHandle addPathProcessingVarying(const char* name, GrGLSLVertToFrag*,
egdaniel7ea439b2015-12-03 09:20:44 -080024 GrSLPrecision fsPrecision = kDefault_GrSLPrecision);
egdaniel0eafe792015-11-20 14:01:22 -080025
26private:
27 typedef GrGLProgramDataManager::VaryingInfo VaryingInfo;
28 typedef GrGLProgramDataManager::VaryingInfoArray VaryingInfoArray;
29
30 VaryingInfoArray fPathProcVaryingInfos;
31
32 friend class GrGLProgramBuilder;
33
34 typedef GrGLSLVaryingHandler INHERITED;
35};
36
37#endif
38