/* * Copyright 2016 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef SKSL_INTERFACEBLOCK #define SKSL_INTERFACEBLOCK #include "include/core/SkTypes.h" #include "include/private/base/SkTArray.h" #include "src/sksl/SkSLPosition.h" #include "src/sksl/ir/SkSLIRNode.h" #include "src/sksl/ir/SkSLProgramElement.h" #include "src/sksl/ir/SkSLType.h" #include "src/sksl/ir/SkSLVariable.h" #include <memory> #include <string> #include <string_view> namespace SkSL { class Context; struct Modifiers; /** * An interface block, as in: * * out sk_PerVertex { * layout(builtin=0) float4 sk_Position; * layout(builtin=1) float sk_PointSize; * }; * * At the IR level, this is represented by a single variable of struct type. */ class InterfaceBlock final : public ProgramElement { … }; } // namespace SkSL #endif