blob: e08a6c61510d1e0995e55d6a35f44a63887181c2 [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:
cdaltonc08f1962016-02-12 12:14:06 -080027 void onFinalize() override;
egdanielb80ec8b2016-02-09 09:54:43 -080028
cdaltonc08f1962016-02-12 12:14:06 -080029 GrGLProgramDataManager::VaryingInfoArray fPathProcVaryingInfos;
egdaniel0eafe792015-11-20 14:01:22 -080030
31 friend class GrGLProgramBuilder;
32
halcanary9d524f22016-03-29 09:03:52 -070033 typedef GrGLSLVaryingHandler INHERITED;
egdaniel0eafe792015-11-20 14:01:22 -080034};
35
36#endif