/*
 * Copyright 2019 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef GrSPIRVVaryingHandler_DEFINED
#define GrSPIRVVaryingHandler_DEFINED

#include "src/gpu/glsl/GrGLSLVarying.h"

 /*
  * This class can be used for basic SPIR-V varying handling. Each added varying just takes the
  * next available location slot.
  */
class GrSPIRVVaryingHandler : public GrGLSLVaryingHandler {
public:
    GrSPIRVVaryingHandler(GrGLSLProgramBuilder* program) : INHERITED(program) {}

    typedef GrGLSLVaryingHandler::VarArray VarArray;

private:
    void onFinalize() override;

    using INHERITED = GrGLSLVaryingHandler;
};

#endif
