blob: a8dbba0962983f38c5eb8ea7408ccc9f45ab5b10 [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.
Chris Dalton27372882017-12-08 13:34:21 -070023 VaryingHandle addPathProcessingVarying(const char* name, GrGLSLVarying*);
egdaniel0eafe792015-11-20 14:01:22 -080024
25private:
cdaltonc08f1962016-02-12 12:14:06 -080026 void onFinalize() override;
egdanielb80ec8b2016-02-09 09:54:43 -080027
cdaltonc08f1962016-02-12 12:14:06 -080028 GrGLProgramDataManager::VaryingInfoArray fPathProcVaryingInfos;
egdaniel0eafe792015-11-20 14:01:22 -080029
30 friend class GrGLProgramBuilder;
31
halcanary9d524f22016-03-29 09:03:52 -070032 typedef GrGLSLVaryingHandler INHERITED;
egdaniel0eafe792015-11-20 14:01:22 -080033};
34
35#endif