// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: disk_cache_proto.proto
// Protobuf C++ Version: 7.35.1

#include "disk_cache_proto.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.h"
#include "google/protobuf/wire_format_lite.h"
#include "google/protobuf/io/zero_copy_stream_impl_lite.h"
// @@protoc_insertion_point(includes)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
class ShaderVariableProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<ShaderVariableProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_._has_bits_);
};

constexpr ShaderVariableProto::ParseTableT_ ShaderVariableProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_._has_bits_),
      0, // no _extensions_
      8, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967040,  // skipmap
      offsetof(ParseTableT_, field_entries),
      8,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::ShaderVariableProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional string struct_name = 8;
      {::_pbi::TcParser::FastBS1,
       {66, 3, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.struct_name_)}},
      // optional uint32 type = 1;
      {::_pbi::TcParser::FastV32S1,
       {8, 4, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.type_)}},
      // optional uint32 precision = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 5, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.precision_)}},
      // optional string name = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.name_)}},
      // optional string mapped_name = 4;
      {::_pbi::TcParser::FastBS1,
       {34, 2, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.mapped_name_)}},
      // optional uint32 array_size = 5;
      {::_pbi::TcParser::FastV32S1,
       {40, 6, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.array_size_)}},
      // optional bool static_use = 6;
      {::_pbi::TcParser::FastV8S1,
       {48, 7, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.static_use_)}},
      // repeated .ShaderVariableProto fields = 7;
      {::_pbi::TcParser::FastMtR1,
       {58, 0, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.fields_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional uint32 type = 1;
      {PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.type_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional uint32 precision = 2;
      {PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.precision_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional string name = 3;
      {PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.name_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string mapped_name = 4;
      {PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.mapped_name_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional uint32 array_size = 5;
      {PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.array_size_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional bool static_use = 6;
      {PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.static_use_), _Internal::kHasBitsOffset + 7, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated .ShaderVariableProto fields = 7;
      {PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.fields_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional string struct_name = 8;
      {PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.struct_name_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderVariableProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderVariableProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ShaderVariableProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        fields_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderVariableProto,
            PROTOBUF_FIELD_OFFSET(::ShaderVariableProto, _impl_.fields_)>()
         }
        ,
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        mapped_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        struct_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        type_{0u},
        precision_{0u},
        array_size_{0u},
        static_use_{false} {}

template <typename>
constexpr ShaderVariableProto::ShaderVariableProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ShaderVariableProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ShaderVariableProto(arena);
}
constexpr auto ShaderVariableProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ShaderVariableProto), alignof(ShaderVariableProto));
}
constexpr auto ShaderVariableProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ShaderVariableProto::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ShaderVariableProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ShaderVariableProto::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ShaderVariableProto>(), &ShaderVariableProto::ByteSizeLong,
              &ShaderVariableProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_._cached_size_),
          true,
      },
      "ShaderVariableProto",
  };
}
struct ShaderVariableProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ShaderVariableProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ShaderVariableProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ShaderVariableProto::InternalGenerateClassData_(
            _default, &ShaderVariableProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ShaderVariableProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ShaderVariableProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ShaderVariableProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ShaderVariableProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ShaderVariableProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ShaderVariableProtoGlobalsTypeInternal ShaderVariableProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ShaderVariableProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ShaderVariableProto_globals_.GetClassData();
#else
  return ShaderVariableProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ShaderVaryingProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<ShaderVaryingProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_._has_bits_);
};

constexpr ShaderVaryingProto::ParseTableT_ ShaderVaryingProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_._has_bits_),
      0, // no _extensions_
      3, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967288,  // skipmap
      offsetof(ParseTableT_, field_entries),
      3,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::ShaderVaryingProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional .ShaderVariableProto basic = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_.basic_)}},
      // optional int32 interpolation = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_.interpolation_)}},
      // optional bool is_invariant = 3;
      {::_pbi::TcParser::FastV8S1,
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_.is_invariant_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .ShaderVariableProto basic = 1;
      {PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_.basic_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional int32 interpolation = 2;
      {PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_.interpolation_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional bool is_invariant = 3;
      {PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_.is_invariant_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderVariableProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderVariableProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ShaderVaryingProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        basic_{nullptr},
        interpolation_{0},
        is_invariant_{false} {}

template <typename>
constexpr ShaderVaryingProto::ShaderVaryingProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ShaderVaryingProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ShaderVaryingProto(arena);
}
constexpr auto ShaderVaryingProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ShaderVaryingProto), alignof(ShaderVaryingProto));
}
constexpr auto ShaderVaryingProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ShaderVaryingProto::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ShaderVaryingProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ShaderVaryingProto::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ShaderVaryingProto>(), &ShaderVaryingProto::ByteSizeLong,
              &ShaderVaryingProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_._cached_size_),
          true,
      },
      "ShaderVaryingProto",
  };
}
struct ShaderVaryingProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ShaderVaryingProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ShaderVaryingProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ShaderVaryingProto::InternalGenerateClassData_(
            _default, &ShaderVaryingProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ShaderVaryingProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ShaderVaryingProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ShaderVaryingProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ShaderVaryingProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ShaderVaryingProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ShaderVaryingProtoGlobalsTypeInternal ShaderVaryingProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ShaderVaryingProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ShaderVaryingProto_globals_.GetClassData();
#else
  return ShaderVaryingProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ShaderUniformProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<ShaderUniformProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ShaderUniformProto, _impl_._has_bits_);
};

constexpr ShaderUniformProto::ParseTableT_ ShaderUniformProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ShaderUniformProto, _impl_._has_bits_),
      0, // no _extensions_
      1, 0,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967294,  // skipmap
      offsetof(ParseTableT_, field_entries),
      1,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::ShaderUniformProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional .ShaderVariableProto basic = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ShaderUniformProto, _impl_.basic_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .ShaderVariableProto basic = 1;
      {PROTOBUF_FIELD_OFFSET(ShaderUniformProto, _impl_.basic_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderVariableProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderVariableProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ShaderUniformProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        basic_{nullptr} {}

template <typename>
constexpr ShaderUniformProto::ShaderUniformProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ShaderUniformProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ShaderUniformProto(arena);
}
constexpr auto ShaderUniformProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ShaderUniformProto), alignof(ShaderUniformProto));
}
constexpr auto ShaderUniformProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ShaderUniformProto::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ShaderUniformProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ShaderUniformProto::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ShaderUniformProto>(), &ShaderUniformProto::ByteSizeLong,
              &ShaderUniformProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ShaderUniformProto, _impl_._cached_size_),
          true,
      },
      "ShaderUniformProto",
  };
}
struct ShaderUniformProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ShaderUniformProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ShaderUniformProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ShaderUniformProto::InternalGenerateClassData_(
            _default, &ShaderUniformProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ShaderUniformProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ShaderUniformProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ShaderUniformProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ShaderUniformProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ShaderUniformProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ShaderUniformProtoGlobalsTypeInternal ShaderUniformProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ShaderUniformProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ShaderUniformProto_globals_.GetClassData();
#else
  return ShaderUniformProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ShaderOutputVariableProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<ShaderOutputVariableProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProto, _impl_._has_bits_);
};

constexpr ShaderOutputVariableProto::ParseTableT_ ShaderOutputVariableProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProto, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::ShaderOutputVariableProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional int32 location = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProto, _impl_.location_)}},
      // optional .ShaderVariableProto basic = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProto, _impl_.basic_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .ShaderVariableProto basic = 1;
      {PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProto, _impl_.basic_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional int32 location = 2;
      {PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProto, _impl_.location_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderVariableProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderVariableProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ShaderOutputVariableProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        basic_{nullptr},
        location_{0} {}

template <typename>
constexpr ShaderOutputVariableProto::ShaderOutputVariableProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ShaderOutputVariableProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ShaderOutputVariableProto(arena);
}
constexpr auto ShaderOutputVariableProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ShaderOutputVariableProto), alignof(ShaderOutputVariableProto));
}
constexpr auto ShaderOutputVariableProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ShaderOutputVariableProto::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ShaderOutputVariableProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ShaderOutputVariableProto::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ShaderOutputVariableProto>(), &ShaderOutputVariableProto::ByteSizeLong,
              &ShaderOutputVariableProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProto, _impl_._cached_size_),
          true,
      },
      "ShaderOutputVariableProto",
  };
}
struct ShaderOutputVariableProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ShaderOutputVariableProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ShaderOutputVariableProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ShaderOutputVariableProto::InternalGenerateClassData_(
            _default, &ShaderOutputVariableProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ShaderOutputVariableProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ShaderOutputVariableProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ShaderOutputVariableProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ShaderOutputVariableProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ShaderOutputVariableProtoGlobalsTypeInternal ShaderOutputVariableProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ShaderOutputVariableProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ShaderOutputVariableProto_globals_.GetClassData();
#else
  return ShaderOutputVariableProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ShaderInterfaceBlockFieldProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<ShaderInterfaceBlockFieldProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProto, _impl_._has_bits_);
};

constexpr ShaderInterfaceBlockFieldProto::ParseTableT_ ShaderInterfaceBlockFieldProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProto, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::ShaderInterfaceBlockFieldProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional bool is_row_major_layout = 2;
      {::_pbi::TcParser::FastV8S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProto, _impl_.is_row_major_layout_)}},
      // optional .ShaderVariableProto basic = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProto, _impl_.basic_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .ShaderVariableProto basic = 1;
      {PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProto, _impl_.basic_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional bool is_row_major_layout = 2;
      {PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProto, _impl_.is_row_major_layout_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderVariableProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderVariableProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ShaderInterfaceBlockFieldProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        basic_{nullptr},
        is_row_major_layout_{false} {}

template <typename>
constexpr ShaderInterfaceBlockFieldProto::ShaderInterfaceBlockFieldProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ShaderInterfaceBlockFieldProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ShaderInterfaceBlockFieldProto(arena);
}
constexpr auto ShaderInterfaceBlockFieldProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ShaderInterfaceBlockFieldProto), alignof(ShaderInterfaceBlockFieldProto));
}
constexpr auto ShaderInterfaceBlockFieldProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ShaderInterfaceBlockFieldProto::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ShaderInterfaceBlockFieldProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ShaderInterfaceBlockFieldProto::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ShaderInterfaceBlockFieldProto>(), &ShaderInterfaceBlockFieldProto::ByteSizeLong,
              &ShaderInterfaceBlockFieldProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProto, _impl_._cached_size_),
          true,
      },
      "ShaderInterfaceBlockFieldProto",
  };
}
struct ShaderInterfaceBlockFieldProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ShaderInterfaceBlockFieldProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ShaderInterfaceBlockFieldProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ShaderInterfaceBlockFieldProto::InternalGenerateClassData_(
            _default, &ShaderInterfaceBlockFieldProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ShaderInterfaceBlockFieldProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ShaderInterfaceBlockFieldProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ShaderInterfaceBlockFieldProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ShaderInterfaceBlockFieldProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ShaderInterfaceBlockFieldProtoGlobalsTypeInternal ShaderInterfaceBlockFieldProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ShaderInterfaceBlockFieldProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ShaderInterfaceBlockFieldProto_globals_.GetClassData();
#else
  return ShaderInterfaceBlockFieldProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ShaderAttributeProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<ShaderAttributeProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ShaderAttributeProto, _impl_._has_bits_);
};

constexpr ShaderAttributeProto::ParseTableT_ ShaderAttributeProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ShaderAttributeProto, _impl_._has_bits_),
      0, // no _extensions_
      2, 8,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967292,  // skipmap
      offsetof(ParseTableT_, field_entries),
      2,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::ShaderAttributeProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional int32 location = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(ShaderAttributeProto, _impl_.location_)}},
      // optional .ShaderVariableProto basic = 1;
      {::_pbi::TcParser::FastMtS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(ShaderAttributeProto, _impl_.basic_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional .ShaderVariableProto basic = 1;
      {PROTOBUF_FIELD_OFFSET(ShaderAttributeProto, _impl_.basic_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional int32 location = 2;
      {PROTOBUF_FIELD_OFFSET(ShaderAttributeProto, _impl_.location_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderVariableProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderVariableProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ShaderAttributeProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        basic_{nullptr},
        location_{0} {}

template <typename>
constexpr ShaderAttributeProto::ShaderAttributeProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ShaderAttributeProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ShaderAttributeProto(arena);
}
constexpr auto ShaderAttributeProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(ShaderAttributeProto), alignof(ShaderAttributeProto));
}
constexpr auto ShaderAttributeProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ShaderAttributeProto::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ShaderAttributeProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ShaderAttributeProto::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ShaderAttributeProto>(), &ShaderAttributeProto::ByteSizeLong,
              &ShaderAttributeProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ShaderAttributeProto, _impl_._cached_size_),
          true,
      },
      "ShaderAttributeProto",
  };
}
struct ShaderAttributeProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ShaderAttributeProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ShaderAttributeProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ShaderAttributeProto::InternalGenerateClassData_(
            _default, &ShaderAttributeProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ShaderAttributeProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ShaderAttributeProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ShaderAttributeProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ShaderAttributeProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ShaderAttributeProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ShaderAttributeProtoGlobalsTypeInternal ShaderAttributeProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ShaderAttributeProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ShaderAttributeProto_globals_.GetClassData();
#else
  return ShaderAttributeProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ShaderInterfaceBlockProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<ShaderInterfaceBlockProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_._has_bits_);
};

constexpr ShaderInterfaceBlockProto::ParseTableT_ ShaderInterfaceBlockProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967168,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      1,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::ShaderInterfaceBlockProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional string name = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 1, 0,
        PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.name_)}},
      // optional string mapped_name = 2;
      {::_pbi::TcParser::FastBS1,
       {18, 2, 0,
        PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.mapped_name_)}},
      // optional string instance_name = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 3, 0,
        PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.instance_name_)}},
      // optional uint32 array_size = 4;
      {::_pbi::TcParser::FastV32S1,
       {32, 4, 0,
        PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.array_size_)}},
      // optional int32 layout = 5;
      {::_pbi::TcParser::FastV32S1,
       {40, 5, 0,
        PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.layout_)}},
      // optional bool static_use = 6;
      {::_pbi::TcParser::FastV8S1,
       {48, 6, 0,
        PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.static_use_)}},
      // repeated .ShaderInterfaceBlockFieldProto fields = 7;
      {::_pbi::TcParser::FastMtR1,
       {58, 0, 0,
        PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.fields_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional string name = 1;
      {PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.name_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string mapped_name = 2;
      {PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.mapped_name_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional string instance_name = 3;
      {PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.instance_name_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional uint32 array_size = 4;
      {PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.array_size_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional int32 layout = 5;
      {PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.layout_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional bool static_use = 6;
      {PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.static_use_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // repeated .ShaderInterfaceBlockFieldProto fields = 7;
      {PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.fields_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderInterfaceBlockFieldProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderInterfaceBlockFieldProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ShaderInterfaceBlockProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        fields_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderInterfaceBlockProto,
            PROTOBUF_FIELD_OFFSET(::ShaderInterfaceBlockProto, _impl_.fields_)>()
         }
        ,
        name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        mapped_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        instance_name_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        array_size_{0u},
        layout_{0},
        static_use_{false} {}

template <typename>
constexpr ShaderInterfaceBlockProto::ShaderInterfaceBlockProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ShaderInterfaceBlockProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ShaderInterfaceBlockProto(arena);
}
constexpr auto ShaderInterfaceBlockProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ShaderInterfaceBlockProto), alignof(ShaderInterfaceBlockProto));
}
constexpr auto ShaderInterfaceBlockProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ShaderInterfaceBlockProto::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ShaderInterfaceBlockProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ShaderInterfaceBlockProto::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ShaderInterfaceBlockProto>(), &ShaderInterfaceBlockProto::ByteSizeLong,
              &ShaderInterfaceBlockProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_._cached_size_),
          true,
      },
      "ShaderInterfaceBlockProto",
  };
}
struct ShaderInterfaceBlockProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ShaderInterfaceBlockProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ShaderInterfaceBlockProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ShaderInterfaceBlockProto::InternalGenerateClassData_(
            _default, &ShaderInterfaceBlockProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ShaderInterfaceBlockProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ShaderInterfaceBlockProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ShaderInterfaceBlockProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ShaderInterfaceBlockProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ShaderInterfaceBlockProtoGlobalsTypeInternal ShaderInterfaceBlockProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ShaderInterfaceBlockProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ShaderInterfaceBlockProto_globals_.GetClassData();
#else
  return ShaderInterfaceBlockProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class ShaderProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<ShaderProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_._has_bits_);
};

constexpr ShaderProto::ParseTableT_ ShaderProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      5,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::ShaderProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional bytes sha = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 5, 0,
        PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.sha_)}},
      // repeated .ShaderAttributeProto attribs = 2;
      {::_pbi::TcParser::FastMtR1,
       {18, 0, 0,
        PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.attribs_)}},
      // repeated .ShaderUniformProto uniforms = 3;
      {::_pbi::TcParser::FastMtR1,
       {26, 1, 1,
        PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.uniforms_)}},
      // repeated .ShaderVaryingProto varyings = 4;
      {::_pbi::TcParser::FastMtR1,
       {34, 2, 2,
        PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.varyings_)}},
      // repeated .ShaderOutputVariableProto output_variables = 5;
      {::_pbi::TcParser::FastMtR1,
       {42, 3, 3,
        PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.output_variables_)}},
      // repeated .ShaderInterfaceBlockProto interface_blocks = 6;
      {::_pbi::TcParser::FastMtR1,
       {50, 4, 4,
        PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.interface_blocks_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bytes sha = 1;
      {PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.sha_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // repeated .ShaderAttributeProto attribs = 2;
      {PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.attribs_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .ShaderUniformProto uniforms = 3;
      {PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.uniforms_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .ShaderVaryingProto varyings = 4;
      {PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.varyings_), _Internal::kHasBitsOffset + 2, 2, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .ShaderOutputVariableProto output_variables = 5;
      {PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.output_variables_), _Internal::kHasBitsOffset + 3, 3, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // repeated .ShaderInterfaceBlockProto interface_blocks = 6;
      {PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_.interface_blocks_), _Internal::kHasBitsOffset + 4, 4, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderAttributeProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderAttributeProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderUniformProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderUniformProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderVaryingProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderVaryingProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderOutputVariableProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderOutputVariableProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderInterfaceBlockProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderInterfaceBlockProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr ShaderProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        attribs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.attribs_)>()
         }
        ,
        uniforms_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.uniforms_)>()
         }
        ,
        varyings_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.varyings_)>()
         }
        ,
        output_variables_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.output_variables_)>()
         }
        ,
        interface_blocks_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.interface_blocks_)>()
         }
        ,
        sha_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()) {}

template <typename>
constexpr ShaderProto::ShaderProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL ShaderProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) ShaderProto(arena);
}
constexpr auto ShaderProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(ShaderProto), alignof(ShaderProto));
}
constexpr auto ShaderProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &ShaderProto::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<ShaderProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &ShaderProto::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<ShaderProto>(), &ShaderProto::ByteSizeLong,
              &ShaderProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(ShaderProto, _impl_._cached_size_),
          true,
      },
      "ShaderProto",
  };
}
struct ShaderProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr ShaderProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 ShaderProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(ShaderProto::InternalGenerateClassData_(
            _default, &ShaderProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<ShaderProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~ShaderProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) ShaderProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<ShaderProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(ShaderProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST ShaderProtoGlobalsTypeInternal ShaderProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* ShaderProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return ShaderProto_globals_.GetClassData();
#else
  return ShaderProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class GpuProgramProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<GpuProgramProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_._has_bits_);
};

constexpr GpuProgramProto::ParseTableT_ GpuProgramProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967168,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::GenericFallbackLite,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::GpuProgramProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional bytes sha = 1;
      {::_pbi::TcParser::FastBS1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.sha_)}},
      // optional uint32 format = 2;
      {::_pbi::TcParser::FastV32S1,
       {16, 4, 0,
        PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.format_)}},
      // optional bytes program = 3;
      {::_pbi::TcParser::FastBS1,
       {26, 1, 0,
        PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.program_)}},
      // optional .ShaderProto vertex_shader = 4;
      {::_pbi::TcParser::FastMtS1,
       {34, 2, 0,
        PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.vertex_shader_)}},
      // optional .ShaderProto fragment_shader = 5;
      {::_pbi::TcParser::FastMtS1,
       {42, 3, 1,
        PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.fragment_shader_)}},
      // optional bool program_is_compressed = 6;
      {::_pbi::TcParser::FastV8S1,
       {48, 5, 0,
        PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.program_is_compressed_)}},
      // optional uint32 program_decompressed_length = 7;
      {::_pbi::TcParser::FastV32S1,
       {56, 6, 0,
        PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.program_decompressed_length_)}},
    }}, {{
      65535, 65535
    }}, {{
      // optional bytes sha = 1;
      {PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.sha_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional uint32 format = 2;
      {PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.format_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
      // optional bytes program = 3;
      {PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.program_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kBytes | ::_fl::kRepAString)},
      // optional .ShaderProto vertex_shader = 4;
      {PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.vertex_shader_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional .ShaderProto fragment_shader = 5;
      {PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.fragment_shader_), _Internal::kHasBitsOffset + 3, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional bool program_is_compressed = 6;
      {PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.program_is_compressed_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional uint32 program_decompressed_length = 7;
      {PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.program_decompressed_length_), _Internal::kHasBitsOffset + 6, 0, (0 | ::_fl::kFcOptional | ::_fl::kUInt32)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::ShaderProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::ShaderProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr GpuProgramProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : _cached_size_{0},
        sha_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        program_(
            &::google::protobuf::internal::fixed_address_empty_string,
            ::_pbi::ConstantInitialized()),
        vertex_shader_{nullptr},
        fragment_shader_{nullptr},
        format_{0u},
        program_is_compressed_{false},
        program_decompressed_length_{0u} {}

template <typename>
constexpr GpuProgramProto::GpuProgramProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : ::google::protobuf::MessageLite(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL GpuProgramProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) GpuProgramProto(arena);
}
constexpr auto GpuProgramProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(GpuProgramProto), alignof(GpuProgramProto));
}
constexpr auto GpuProgramProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataLite{
      {
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &GpuProgramProto::MergeImpl,
          ::google::protobuf::MessageLite::GetNewImpl<GpuProgramProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &GpuProgramProto::SharedDtor,
          ::google::protobuf::MessageLite::GetClearImpl<GpuProgramProto>(), &GpuProgramProto::ByteSizeLong,
              &GpuProgramProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_._cached_size_),
          true,
      },
      "GpuProgramProto",
  };
}
struct GpuProgramProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr GpuProgramProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 GpuProgramProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(GpuProgramProto::InternalGenerateClassData_(
            _default, &GpuProgramProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<GpuProgramProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~GpuProgramProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) GpuProgramProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<GpuProgramProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(GpuProgramProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST GpuProgramProtoGlobalsTypeInternal GpuProgramProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* GpuProgramProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return GpuProgramProto_globals_.GetClassData();
#else
  return GpuProgramProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
// ===================================================================

ShaderVariableProto::ShaderVariableProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderVariableProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:ShaderVariableProto)
}
PROTOBUF_NDEBUG_INLINE ShaderVariableProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::ShaderVariableProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        fields_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::ShaderVariableProto,
              PROTOBUF_FIELD_OFFSET(::ShaderVariableProto, _impl_.fields_)>()
          , from.fields_
        }
        ,
        name_(arena, from.name_),
        mapped_name_(arena, from.mapped_name_),
        struct_name_(arena, from.struct_name_) {}

ShaderVariableProto::ShaderVariableProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ShaderVariableProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderVariableProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ShaderVariableProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, type_),
           offsetof(Impl_, static_use_) -
               offsetof(Impl_, type_) +
               sizeof(Impl_::static_use_));

  // @@protoc_insertion_point(copy_constructor:ShaderVariableProto)
}
PROTOBUF_NDEBUG_INLINE ShaderVariableProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        fields_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderVariableProto,
            PROTOBUF_FIELD_OFFSET(::ShaderVariableProto, _impl_.fields_)>()
         }
        ,
        name_(arena),
        mapped_name_(arena),
        struct_name_(arena) {}

inline void ShaderVariableProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, type_),
           0,
           offsetof(Impl_, static_use_) -
               offsetof(Impl_, type_) +
               sizeof(Impl_::static_use_));
}
ShaderVariableProto::~ShaderVariableProto() {
  // @@protoc_insertion_point(destructor:ShaderVariableProto)
  SharedDtor(*this);
}
inline void ShaderVariableProto::SharedDtor(MessageLite& self) {
  ShaderVariableProto& this_ = static_cast<ShaderVariableProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  this_._impl_.mapped_name_.Destroy();
  this_._impl_.struct_name_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ShaderVariableProto_class_data_ =
    ShaderVariableProto::InternalGenerateClassData_(ShaderVariableProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderVariableProto::GetClassData() const {
  return ShaderVariableProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderVariableProto::GetClassData() const {
  return ShaderVariableProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ShaderVariableProto::ParseTableT_
    ShaderVariableProto::_table_ =
        ShaderVariableProto::InternalGenerateParseTable_(ShaderVariableProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ShaderVariableProto::Clear() {
// @@protoc_insertion_point(message_clear_start:ShaderVariableProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.fields_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.mapped_name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.struct_name_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x000000f0U)) {
    ::memset(&_impl_.type_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.static_use_) -
        reinterpret_cast<char*>(&_impl_.type_)) + sizeof(_impl_.static_use_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ShaderVariableProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ShaderVariableProto& this_ = static_cast<const ShaderVariableProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ShaderVariableProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ShaderVariableProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:ShaderVariableProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional uint32 type = 1;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        1, this_._internal_type(), target);
  }

  // optional uint32 precision = 2;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_precision(), target);
  }

  // optional string name = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_name();
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional string mapped_name = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_mapped_name();
    target = stream->WriteStringMaybeAliased(4, _s, target);
  }

  // optional uint32 array_size = 5;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        5, this_._internal_array_size(), target);
  }

  // optional bool static_use = 6;
  if (CheckHasBit(cached_has_bits, 0x00000080U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_static_use(), target);
  }

  // repeated .ShaderVariableProto fields = 7;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_fields_size());
         i < n; i++) {
      const auto& repfield = this_._internal_fields().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              7, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // optional string struct_name = 8;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_struct_name();
    target = stream->WriteStringMaybeAliased(8, _s, target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ShaderVariableProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ShaderVariableProto::ByteSizeLong(const MessageLite& base) {
  const ShaderVariableProto& this_ = static_cast<const ShaderVariableProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ShaderVariableProto::ByteSizeLong() const {
  const ShaderVariableProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:ShaderVariableProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000080U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    // repeated .ShaderVariableProto fields = 7;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_fields_size();
      for (const auto& msg : this_._internal_fields()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional string name = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_name());
    }
    // optional string mapped_name = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_mapped_name());
    }
    // optional string struct_name = 8;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_struct_name());
    }
    // optional uint32 type = 1;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_type());
    }
    // optional uint32 precision = 2;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_precision());
    }
    // optional uint32 array_size = 5;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_array_size());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ShaderVariableProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ShaderVariableProto*>(&to_msg);
  auto& from = static_cast<const ShaderVariableProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:ShaderVariableProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x000000ffU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_fields()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_fields());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_name(from._internal_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_mapped_name(from._internal_mapped_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_struct_name(from._internal_struct_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.type_ = from._impl_.type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.precision_ = from._impl_.precision_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.array_size_ = from._impl_.array_size_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000080U)) {
      _this->_impl_.static_use_ = from._impl_.static_use_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ShaderVariableProto::CopyFrom(const ShaderVariableProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:ShaderVariableProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ShaderVariableProto::InternalSwap(ShaderVariableProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.fields_.InternalSwap(&other->_impl_.fields_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mapped_name_, &other->_impl_.mapped_name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.struct_name_, &other->_impl_.struct_name_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.static_use_)
      + sizeof(ShaderVariableProto::_impl_.static_use_)
      - PROTOBUF_FIELD_OFFSET(ShaderVariableProto, _impl_.type_)>(
          reinterpret_cast<char*>(&_impl_.type_),
          reinterpret_cast<char*>(&other->_impl_.type_));
}

// ===================================================================

ShaderAttributeProto::ShaderAttributeProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderAttributeProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:ShaderAttributeProto)
}
PROTOBUF_NDEBUG_INLINE ShaderAttributeProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::ShaderAttributeProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

ShaderAttributeProto::ShaderAttributeProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ShaderAttributeProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderAttributeProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ShaderAttributeProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.basic_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_)
                : nullptr;
  _impl_.location_ = from._impl_.location_;

  // @@protoc_insertion_point(copy_constructor:ShaderAttributeProto)
}
PROTOBUF_NDEBUG_INLINE ShaderAttributeProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ShaderAttributeProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, basic_),
           0,
           offsetof(Impl_, location_) -
               offsetof(Impl_, basic_) +
               sizeof(Impl_::location_));
}
ShaderAttributeProto::~ShaderAttributeProto() {
  // @@protoc_insertion_point(destructor:ShaderAttributeProto)
  SharedDtor(*this);
}
inline void ShaderAttributeProto::SharedDtor(MessageLite& self) {
  ShaderAttributeProto& this_ = static_cast<ShaderAttributeProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.basic_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ShaderAttributeProto_class_data_ =
    ShaderAttributeProto::InternalGenerateClassData_(ShaderAttributeProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderAttributeProto::GetClassData() const {
  return ShaderAttributeProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderAttributeProto::GetClassData() const {
  return ShaderAttributeProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ShaderAttributeProto::ParseTableT_
    ShaderAttributeProto::_table_ =
        ShaderAttributeProto::InternalGenerateParseTable_(ShaderAttributeProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ShaderAttributeProto::Clear() {
// @@protoc_insertion_point(message_clear_start:ShaderAttributeProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.basic_ != nullptr);
    _impl_.basic_->Clear();
  }
  _impl_.location_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ShaderAttributeProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ShaderAttributeProto& this_ = static_cast<const ShaderAttributeProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ShaderAttributeProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ShaderAttributeProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:ShaderAttributeProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .ShaderVariableProto basic = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.basic_, this_._impl_.basic_->GetCachedSize(), target,
        stream);
  }

  // optional int32 location = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_location(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ShaderAttributeProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ShaderAttributeProto::ByteSizeLong(const MessageLite& base) {
  const ShaderAttributeProto& this_ = static_cast<const ShaderAttributeProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ShaderAttributeProto::ByteSizeLong() const {
  const ShaderAttributeProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:ShaderAttributeProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional .ShaderVariableProto basic = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.basic_);
    }
    // optional int32 location = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_location());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ShaderAttributeProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ShaderAttributeProto*>(&to_msg);
  auto& from = static_cast<const ShaderAttributeProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:ShaderAttributeProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.basic_ != nullptr);
      if (_this->_impl_.basic_ == nullptr) {
        _this->_impl_.basic_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_);
      } else {
        _this->_impl_.basic_->MergeFrom(*from._impl_.basic_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.location_ = from._impl_.location_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ShaderAttributeProto::CopyFrom(const ShaderAttributeProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:ShaderAttributeProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ShaderAttributeProto::InternalSwap(ShaderAttributeProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ShaderAttributeProto, _impl_.location_)
      + sizeof(ShaderAttributeProto::_impl_.location_)
      - PROTOBUF_FIELD_OFFSET(ShaderAttributeProto, _impl_.basic_)>(
          reinterpret_cast<char*>(&_impl_.basic_),
          reinterpret_cast<char*>(&other->_impl_.basic_));
}

// ===================================================================

ShaderUniformProto::ShaderUniformProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderUniformProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:ShaderUniformProto)
}
PROTOBUF_NDEBUG_INLINE ShaderUniformProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::ShaderUniformProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

ShaderUniformProto::ShaderUniformProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ShaderUniformProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderUniformProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ShaderUniformProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.basic_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_)
                : nullptr;

  // @@protoc_insertion_point(copy_constructor:ShaderUniformProto)
}
PROTOBUF_NDEBUG_INLINE ShaderUniformProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ShaderUniformProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  _impl_.basic_ = {};
}
ShaderUniformProto::~ShaderUniformProto() {
  // @@protoc_insertion_point(destructor:ShaderUniformProto)
  SharedDtor(*this);
}
inline void ShaderUniformProto::SharedDtor(MessageLite& self) {
  ShaderUniformProto& this_ = static_cast<ShaderUniformProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.basic_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ShaderUniformProto_class_data_ =
    ShaderUniformProto::InternalGenerateClassData_(ShaderUniformProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderUniformProto::GetClassData() const {
  return ShaderUniformProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderUniformProto::GetClassData() const {
  return ShaderUniformProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ShaderUniformProto::ParseTableT_
    ShaderUniformProto::_table_ =
        ShaderUniformProto::InternalGenerateParseTable_(ShaderUniformProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ShaderUniformProto::Clear() {
// @@protoc_insertion_point(message_clear_start:ShaderUniformProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.basic_ != nullptr);
    _impl_.basic_->Clear();
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ShaderUniformProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ShaderUniformProto& this_ = static_cast<const ShaderUniformProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ShaderUniformProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ShaderUniformProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:ShaderUniformProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .ShaderVariableProto basic = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.basic_, this_._impl_.basic_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ShaderUniformProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ShaderUniformProto::ByteSizeLong(const MessageLite& base) {
  const ShaderUniformProto& this_ = static_cast<const ShaderUniformProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ShaderUniformProto::ByteSizeLong() const {
  const ShaderUniformProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:ShaderUniformProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

   {
    // optional .ShaderVariableProto basic = 1;
    cached_has_bits = this_._impl_._has_bits_[0];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.basic_);
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ShaderUniformProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ShaderUniformProto*>(&to_msg);
  auto& from = static_cast<const ShaderUniformProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:ShaderUniformProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(from._impl_.basic_ != nullptr);
    if (_this->_impl_.basic_ == nullptr) {
      _this->_impl_.basic_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_);
    } else {
      _this->_impl_.basic_->MergeFrom(*from._impl_.basic_);
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ShaderUniformProto::CopyFrom(const ShaderUniformProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:ShaderUniformProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ShaderUniformProto::InternalSwap(ShaderUniformProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  swap(_impl_.basic_, other->_impl_.basic_);
}

// ===================================================================

ShaderVaryingProto::ShaderVaryingProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderVaryingProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:ShaderVaryingProto)
}
PROTOBUF_NDEBUG_INLINE ShaderVaryingProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::ShaderVaryingProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

ShaderVaryingProto::ShaderVaryingProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ShaderVaryingProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderVaryingProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ShaderVaryingProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.basic_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, interpolation_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, interpolation_),
           offsetof(Impl_, is_invariant_) -
               offsetof(Impl_, interpolation_) +
               sizeof(Impl_::is_invariant_));

  // @@protoc_insertion_point(copy_constructor:ShaderVaryingProto)
}
PROTOBUF_NDEBUG_INLINE ShaderVaryingProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ShaderVaryingProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, basic_),
           0,
           offsetof(Impl_, is_invariant_) -
               offsetof(Impl_, basic_) +
               sizeof(Impl_::is_invariant_));
}
ShaderVaryingProto::~ShaderVaryingProto() {
  // @@protoc_insertion_point(destructor:ShaderVaryingProto)
  SharedDtor(*this);
}
inline void ShaderVaryingProto::SharedDtor(MessageLite& self) {
  ShaderVaryingProto& this_ = static_cast<ShaderVaryingProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.basic_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ShaderVaryingProto_class_data_ =
    ShaderVaryingProto::InternalGenerateClassData_(ShaderVaryingProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderVaryingProto::GetClassData() const {
  return ShaderVaryingProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderVaryingProto::GetClassData() const {
  return ShaderVaryingProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ShaderVaryingProto::ParseTableT_
    ShaderVaryingProto::_table_ =
        ShaderVaryingProto::InternalGenerateParseTable_(ShaderVaryingProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ShaderVaryingProto::Clear() {
// @@protoc_insertion_point(message_clear_start:ShaderVaryingProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.basic_ != nullptr);
    _impl_.basic_->Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000006U)) {
    ::memset(&_impl_.interpolation_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.is_invariant_) -
        reinterpret_cast<char*>(&_impl_.interpolation_)) + sizeof(_impl_.is_invariant_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ShaderVaryingProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ShaderVaryingProto& this_ = static_cast<const ShaderVaryingProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ShaderVaryingProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ShaderVaryingProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:ShaderVaryingProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .ShaderVariableProto basic = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.basic_, this_._impl_.basic_->GetCachedSize(), target,
        stream);
  }

  // optional int32 interpolation = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_interpolation(), target);
  }

  // optional bool is_invariant = 3;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        3, this_._internal_is_invariant(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ShaderVaryingProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ShaderVaryingProto::ByteSizeLong(const MessageLite& base) {
  const ShaderVaryingProto& this_ = static_cast<const ShaderVaryingProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ShaderVaryingProto::ByteSizeLong() const {
  const ShaderVaryingProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:ShaderVaryingProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000004U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional .ShaderVariableProto basic = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.basic_);
    }
    // optional int32 interpolation = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_interpolation());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ShaderVaryingProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ShaderVaryingProto*>(&to_msg);
  auto& from = static_cast<const ShaderVaryingProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:ShaderVaryingProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000007U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.basic_ != nullptr);
      if (_this->_impl_.basic_ == nullptr) {
        _this->_impl_.basic_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_);
      } else {
        _this->_impl_.basic_->MergeFrom(*from._impl_.basic_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.interpolation_ = from._impl_.interpolation_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.is_invariant_ = from._impl_.is_invariant_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ShaderVaryingProto::CopyFrom(const ShaderVaryingProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:ShaderVaryingProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ShaderVaryingProto::InternalSwap(ShaderVaryingProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_.is_invariant_)
      + sizeof(ShaderVaryingProto::_impl_.is_invariant_)
      - PROTOBUF_FIELD_OFFSET(ShaderVaryingProto, _impl_.basic_)>(
          reinterpret_cast<char*>(&_impl_.basic_),
          reinterpret_cast<char*>(&other->_impl_.basic_));
}

// ===================================================================

ShaderOutputVariableProto::ShaderOutputVariableProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderOutputVariableProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:ShaderOutputVariableProto)
}
PROTOBUF_NDEBUG_INLINE ShaderOutputVariableProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::ShaderOutputVariableProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

ShaderOutputVariableProto::ShaderOutputVariableProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ShaderOutputVariableProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderOutputVariableProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ShaderOutputVariableProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.basic_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_)
                : nullptr;
  _impl_.location_ = from._impl_.location_;

  // @@protoc_insertion_point(copy_constructor:ShaderOutputVariableProto)
}
PROTOBUF_NDEBUG_INLINE ShaderOutputVariableProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ShaderOutputVariableProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, basic_),
           0,
           offsetof(Impl_, location_) -
               offsetof(Impl_, basic_) +
               sizeof(Impl_::location_));
}
ShaderOutputVariableProto::~ShaderOutputVariableProto() {
  // @@protoc_insertion_point(destructor:ShaderOutputVariableProto)
  SharedDtor(*this);
}
inline void ShaderOutputVariableProto::SharedDtor(MessageLite& self) {
  ShaderOutputVariableProto& this_ = static_cast<ShaderOutputVariableProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.basic_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ShaderOutputVariableProto_class_data_ =
    ShaderOutputVariableProto::InternalGenerateClassData_(ShaderOutputVariableProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderOutputVariableProto::GetClassData() const {
  return ShaderOutputVariableProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderOutputVariableProto::GetClassData() const {
  return ShaderOutputVariableProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ShaderOutputVariableProto::ParseTableT_
    ShaderOutputVariableProto::_table_ =
        ShaderOutputVariableProto::InternalGenerateParseTable_(ShaderOutputVariableProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ShaderOutputVariableProto::Clear() {
// @@protoc_insertion_point(message_clear_start:ShaderOutputVariableProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.basic_ != nullptr);
    _impl_.basic_->Clear();
  }
  _impl_.location_ = 0;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ShaderOutputVariableProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ShaderOutputVariableProto& this_ = static_cast<const ShaderOutputVariableProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ShaderOutputVariableProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ShaderOutputVariableProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:ShaderOutputVariableProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .ShaderVariableProto basic = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.basic_, this_._impl_.basic_->GetCachedSize(), target,
        stream);
  }

  // optional int32 location = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_location(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ShaderOutputVariableProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ShaderOutputVariableProto::ByteSizeLong(const MessageLite& base) {
  const ShaderOutputVariableProto& this_ = static_cast<const ShaderOutputVariableProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ShaderOutputVariableProto::ByteSizeLong() const {
  const ShaderOutputVariableProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:ShaderOutputVariableProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    // optional .ShaderVariableProto basic = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.basic_);
    }
    // optional int32 location = 2;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_location());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ShaderOutputVariableProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ShaderOutputVariableProto*>(&to_msg);
  auto& from = static_cast<const ShaderOutputVariableProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:ShaderOutputVariableProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.basic_ != nullptr);
      if (_this->_impl_.basic_ == nullptr) {
        _this->_impl_.basic_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_);
      } else {
        _this->_impl_.basic_->MergeFrom(*from._impl_.basic_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.location_ = from._impl_.location_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ShaderOutputVariableProto::CopyFrom(const ShaderOutputVariableProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:ShaderOutputVariableProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ShaderOutputVariableProto::InternalSwap(ShaderOutputVariableProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProto, _impl_.location_)
      + sizeof(ShaderOutputVariableProto::_impl_.location_)
      - PROTOBUF_FIELD_OFFSET(ShaderOutputVariableProto, _impl_.basic_)>(
          reinterpret_cast<char*>(&_impl_.basic_),
          reinterpret_cast<char*>(&other->_impl_.basic_));
}

// ===================================================================

ShaderInterfaceBlockFieldProto::ShaderInterfaceBlockFieldProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderInterfaceBlockFieldProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:ShaderInterfaceBlockFieldProto)
}
PROTOBUF_NDEBUG_INLINE ShaderInterfaceBlockFieldProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::ShaderInterfaceBlockFieldProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0} {}

ShaderInterfaceBlockFieldProto::ShaderInterfaceBlockFieldProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ShaderInterfaceBlockFieldProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderInterfaceBlockFieldProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ShaderInterfaceBlockFieldProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.basic_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_)
                : nullptr;
  _impl_.is_row_major_layout_ = from._impl_.is_row_major_layout_;

  // @@protoc_insertion_point(copy_constructor:ShaderInterfaceBlockFieldProto)
}
PROTOBUF_NDEBUG_INLINE ShaderInterfaceBlockFieldProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0} {}

inline void ShaderInterfaceBlockFieldProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, basic_),
           0,
           offsetof(Impl_, is_row_major_layout_) -
               offsetof(Impl_, basic_) +
               sizeof(Impl_::is_row_major_layout_));
}
ShaderInterfaceBlockFieldProto::~ShaderInterfaceBlockFieldProto() {
  // @@protoc_insertion_point(destructor:ShaderInterfaceBlockFieldProto)
  SharedDtor(*this);
}
inline void ShaderInterfaceBlockFieldProto::SharedDtor(MessageLite& self) {
  ShaderInterfaceBlockFieldProto& this_ = static_cast<ShaderInterfaceBlockFieldProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.basic_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ShaderInterfaceBlockFieldProto_class_data_ =
    ShaderInterfaceBlockFieldProto::InternalGenerateClassData_(ShaderInterfaceBlockFieldProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderInterfaceBlockFieldProto::GetClassData() const {
  return ShaderInterfaceBlockFieldProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderInterfaceBlockFieldProto::GetClassData() const {
  return ShaderInterfaceBlockFieldProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ShaderInterfaceBlockFieldProto::ParseTableT_
    ShaderInterfaceBlockFieldProto::_table_ =
        ShaderInterfaceBlockFieldProto::InternalGenerateParseTable_(ShaderInterfaceBlockFieldProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ShaderInterfaceBlockFieldProto::Clear() {
// @@protoc_insertion_point(message_clear_start:ShaderInterfaceBlockFieldProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    ABSL_DCHECK(_impl_.basic_ != nullptr);
    _impl_.basic_->Clear();
  }
  _impl_.is_row_major_layout_ = false;
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ShaderInterfaceBlockFieldProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ShaderInterfaceBlockFieldProto& this_ = static_cast<const ShaderInterfaceBlockFieldProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ShaderInterfaceBlockFieldProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ShaderInterfaceBlockFieldProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:ShaderInterfaceBlockFieldProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional .ShaderVariableProto basic = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        1, *this_._impl_.basic_, this_._impl_.basic_->GetCachedSize(), target,
        stream);
  }

  // optional bool is_row_major_layout = 2;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        2, this_._internal_is_row_major_layout(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ShaderInterfaceBlockFieldProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ShaderInterfaceBlockFieldProto::ByteSizeLong(const MessageLite& base) {
  const ShaderInterfaceBlockFieldProto& this_ = static_cast<const ShaderInterfaceBlockFieldProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ShaderInterfaceBlockFieldProto::ByteSizeLong() const {
  const ShaderInterfaceBlockFieldProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:ShaderInterfaceBlockFieldProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000002U & cached_has_bits) * 2;
   {
    // optional .ShaderVariableProto basic = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.basic_);
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ShaderInterfaceBlockFieldProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ShaderInterfaceBlockFieldProto*>(&to_msg);
  auto& from = static_cast<const ShaderInterfaceBlockFieldProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:ShaderInterfaceBlockFieldProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.basic_ != nullptr);
      if (_this->_impl_.basic_ == nullptr) {
        _this->_impl_.basic_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.basic_);
      } else {
        _this->_impl_.basic_->MergeFrom(*from._impl_.basic_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.is_row_major_layout_ = from._impl_.is_row_major_layout_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ShaderInterfaceBlockFieldProto::CopyFrom(const ShaderInterfaceBlockFieldProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:ShaderInterfaceBlockFieldProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ShaderInterfaceBlockFieldProto::InternalSwap(ShaderInterfaceBlockFieldProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProto, _impl_.is_row_major_layout_)
      + sizeof(ShaderInterfaceBlockFieldProto::_impl_.is_row_major_layout_)
      - PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockFieldProto, _impl_.basic_)>(
          reinterpret_cast<char*>(&_impl_.basic_),
          reinterpret_cast<char*>(&other->_impl_.basic_));
}

// ===================================================================

ShaderInterfaceBlockProto::ShaderInterfaceBlockProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderInterfaceBlockProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:ShaderInterfaceBlockProto)
}
PROTOBUF_NDEBUG_INLINE ShaderInterfaceBlockProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::ShaderInterfaceBlockProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        fields_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::ShaderInterfaceBlockProto,
              PROTOBUF_FIELD_OFFSET(::ShaderInterfaceBlockProto, _impl_.fields_)>()
          , from.fields_
        }
        ,
        name_(arena, from.name_),
        mapped_name_(arena, from.mapped_name_),
        instance_name_(arena, from.instance_name_) {}

ShaderInterfaceBlockProto::ShaderInterfaceBlockProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ShaderInterfaceBlockProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderInterfaceBlockProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ShaderInterfaceBlockProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, array_size_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, array_size_),
           offsetof(Impl_, static_use_) -
               offsetof(Impl_, array_size_) +
               sizeof(Impl_::static_use_));

  // @@protoc_insertion_point(copy_constructor:ShaderInterfaceBlockProto)
}
PROTOBUF_NDEBUG_INLINE ShaderInterfaceBlockProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        fields_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderInterfaceBlockProto,
            PROTOBUF_FIELD_OFFSET(::ShaderInterfaceBlockProto, _impl_.fields_)>()
         }
        ,
        name_(arena),
        mapped_name_(arena),
        instance_name_(arena) {}

inline void ShaderInterfaceBlockProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, array_size_),
           0,
           offsetof(Impl_, static_use_) -
               offsetof(Impl_, array_size_) +
               sizeof(Impl_::static_use_));
}
ShaderInterfaceBlockProto::~ShaderInterfaceBlockProto() {
  // @@protoc_insertion_point(destructor:ShaderInterfaceBlockProto)
  SharedDtor(*this);
}
inline void ShaderInterfaceBlockProto::SharedDtor(MessageLite& self) {
  ShaderInterfaceBlockProto& this_ = static_cast<ShaderInterfaceBlockProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.name_.Destroy();
  this_._impl_.mapped_name_.Destroy();
  this_._impl_.instance_name_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ShaderInterfaceBlockProto_class_data_ =
    ShaderInterfaceBlockProto::InternalGenerateClassData_(ShaderInterfaceBlockProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderInterfaceBlockProto::GetClassData() const {
  return ShaderInterfaceBlockProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderInterfaceBlockProto::GetClassData() const {
  return ShaderInterfaceBlockProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ShaderInterfaceBlockProto::ParseTableT_
    ShaderInterfaceBlockProto::_table_ =
        ShaderInterfaceBlockProto::InternalGenerateParseTable_(ShaderInterfaceBlockProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ShaderInterfaceBlockProto::Clear() {
// @@protoc_insertion_point(message_clear_start:ShaderInterfaceBlockProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.fields_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.mapped_name_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.instance_name_.ClearNonDefaultToEmpty();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000070U)) {
    ::memset(&_impl_.array_size_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.static_use_) -
        reinterpret_cast<char*>(&_impl_.array_size_)) + sizeof(_impl_.static_use_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ShaderInterfaceBlockProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ShaderInterfaceBlockProto& this_ = static_cast<const ShaderInterfaceBlockProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ShaderInterfaceBlockProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ShaderInterfaceBlockProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:ShaderInterfaceBlockProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional string name = 1;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_name();
    target = stream->WriteStringMaybeAliased(1, _s, target);
  }

  // optional string mapped_name = 2;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    const ::std::string& _s = this_._internal_mapped_name();
    target = stream->WriteStringMaybeAliased(2, _s, target);
  }

  // optional string instance_name = 3;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    const ::std::string& _s = this_._internal_instance_name();
    target = stream->WriteStringMaybeAliased(3, _s, target);
  }

  // optional uint32 array_size = 4;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        4, this_._internal_array_size(), target);
  }

  // optional int32 layout = 5;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_layout(), target);
  }

  // optional bool static_use = 6;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_static_use(), target);
  }

  // repeated .ShaderInterfaceBlockFieldProto fields = 7;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_fields_size());
         i < n; i++) {
      const auto& repfield = this_._internal_fields().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              7, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ShaderInterfaceBlockProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ShaderInterfaceBlockProto::ByteSizeLong(const MessageLite& base) {
  const ShaderInterfaceBlockProto& this_ = static_cast<const ShaderInterfaceBlockProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ShaderInterfaceBlockProto::ByteSizeLong() const {
  const ShaderInterfaceBlockProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:ShaderInterfaceBlockProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000040U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // repeated .ShaderInterfaceBlockFieldProto fields = 7;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_fields_size();
      for (const auto& msg : this_._internal_fields()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional string name = 1;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_name());
    }
    // optional string mapped_name = 2;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_mapped_name());
    }
    // optional string instance_name = 3;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::StringSize(
                                      this_._internal_instance_name());
    }
    // optional uint32 array_size = 4;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_array_size());
    }
    // optional int32 layout = 5;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_layout());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ShaderInterfaceBlockProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ShaderInterfaceBlockProto*>(&to_msg);
  auto& from = static_cast<const ShaderInterfaceBlockProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:ShaderInterfaceBlockProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_fields()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_fields());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_name(from._internal_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_set_mapped_name(from._internal_mapped_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_set_instance_name(from._internal_instance_name());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.array_size_ = from._impl_.array_size_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.layout_ = from._impl_.layout_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.static_use_ = from._impl_.static_use_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ShaderInterfaceBlockProto::CopyFrom(const ShaderInterfaceBlockProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:ShaderInterfaceBlockProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ShaderInterfaceBlockProto::InternalSwap(ShaderInterfaceBlockProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.fields_.InternalSwap(&other->_impl_.fields_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.name_, &other->_impl_.name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.mapped_name_, &other->_impl_.mapped_name_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.instance_name_, &other->_impl_.instance_name_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.static_use_)
      + sizeof(ShaderInterfaceBlockProto::_impl_.static_use_)
      - PROTOBUF_FIELD_OFFSET(ShaderInterfaceBlockProto, _impl_.array_size_)>(
          reinterpret_cast<char*>(&_impl_.array_size_),
          reinterpret_cast<char*>(&other->_impl_.array_size_));
}

// ===================================================================

ShaderProto::ShaderProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:ShaderProto)
}
PROTOBUF_NDEBUG_INLINE ShaderProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::ShaderProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        attribs_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::ShaderProto,
              PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.attribs_)>()
          , from.attribs_
        }
        ,
        uniforms_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::ShaderProto,
              PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.uniforms_)>()
          , from.uniforms_
        }
        ,
        varyings_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::ShaderProto,
              PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.varyings_)>()
          , from.varyings_
        }
        ,
        output_variables_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::ShaderProto,
              PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.output_variables_)>()
          , from.output_variables_
        }
        ,
        interface_blocks_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::ShaderProto,
              PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.interface_blocks_)>()
          , from.interface_blocks_
        }
        ,
        sha_(arena, from.sha_) {}

ShaderProto::ShaderProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const ShaderProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, ShaderProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  ShaderProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);

  // @@protoc_insertion_point(copy_constructor:ShaderProto)
}
PROTOBUF_NDEBUG_INLINE ShaderProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        attribs_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.attribs_)>()
         }
        ,
        uniforms_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.uniforms_)>()
         }
        ,
        varyings_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.varyings_)>()
         }
        ,
        output_variables_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.output_variables_)>()
         }
        ,
        interface_blocks_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::ShaderProto,
            PROTOBUF_FIELD_OFFSET(::ShaderProto, _impl_.interface_blocks_)>()
         }
        ,
        sha_(arena) {}

inline void ShaderProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
}
ShaderProto::~ShaderProto() {
  // @@protoc_insertion_point(destructor:ShaderProto)
  SharedDtor(*this);
}
inline void ShaderProto::SharedDtor(MessageLite& self) {
  ShaderProto& this_ = static_cast<ShaderProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.sha_.Destroy();
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite ShaderProto_class_data_ =
    ShaderProto::InternalGenerateClassData_(ShaderProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderProto::GetClassData() const {
  return ShaderProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
ShaderProto::GetClassData() const {
  return ShaderProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const ShaderProto::ParseTableT_
    ShaderProto::_table_ =
        ShaderProto::InternalGenerateParseTable_(ShaderProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void ShaderProto::Clear() {
// @@protoc_insertion_point(message_clear_start:ShaderProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.attribs_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.uniforms_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _impl_.varyings_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _impl_.output_variables_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _impl_.interface_blocks_.Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _impl_.sha_.ClearNonDefaultToEmpty();
    }
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL ShaderProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const ShaderProto& this_ = static_cast<const ShaderProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL ShaderProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const ShaderProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:ShaderProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bytes sha = 1;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    const ::std::string& _s = this_._internal_sha();
    target = stream->WriteBytesMaybeAliased(1, _s, target);
  }

  // repeated .ShaderAttributeProto attribs = 2;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_attribs_size());
         i < n; i++) {
      const auto& repfield = this_._internal_attribs().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              2, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .ShaderUniformProto uniforms = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_uniforms_size());
         i < n; i++) {
      const auto& repfield = this_._internal_uniforms().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              3, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .ShaderVaryingProto varyings = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_varyings_size());
         i < n; i++) {
      const auto& repfield = this_._internal_varyings().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              4, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .ShaderOutputVariableProto output_variables = 5;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_output_variables_size());
         i < n; i++) {
      const auto& repfield = this_._internal_output_variables().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              5, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  // repeated .ShaderInterfaceBlockProto interface_blocks = 6;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_interface_blocks_size());
         i < n; i++) {
      const auto& repfield = this_._internal_interface_blocks().Get(i);
      target =
          ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
              6, repfield, repfield.GetCachedSize(),
              target, stream);
    }
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:ShaderProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t ShaderProto::ByteSizeLong(const MessageLite& base) {
  const ShaderProto& this_ = static_cast<const ShaderProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t ShaderProto::ByteSizeLong() const {
  const ShaderProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:ShaderProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // repeated .ShaderAttributeProto attribs = 2;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_attribs_size();
      for (const auto& msg : this_._internal_attribs()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .ShaderUniformProto uniforms = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1UL * this_._internal_uniforms_size();
      for (const auto& msg : this_._internal_uniforms()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .ShaderVaryingProto varyings = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1UL * this_._internal_varyings_size();
      for (const auto& msg : this_._internal_varyings()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .ShaderOutputVariableProto output_variables = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1UL * this_._internal_output_variables_size();
      for (const auto& msg : this_._internal_output_variables()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // repeated .ShaderInterfaceBlockProto interface_blocks = 6;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1UL * this_._internal_interface_blocks_size();
      for (const auto& msg : this_._internal_interface_blocks()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional bytes sha = 1;
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_sha());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void ShaderProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<ShaderProto*>(&to_msg);
  auto& from = static_cast<const ShaderProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:ShaderProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_attribs()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_attribs());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_mutable_uniforms()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_uniforms());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_internal_mutable_varyings()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_varyings());
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_internal_mutable_output_variables()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_output_variables());
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_internal_mutable_interface_blocks()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_interface_blocks());
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_internal_set_sha(from._internal_sha());
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void ShaderProto::CopyFrom(const ShaderProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:ShaderProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void ShaderProto::InternalSwap(ShaderProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.attribs_.InternalSwap(&other->_impl_.attribs_);
  _impl_.uniforms_.InternalSwap(&other->_impl_.uniforms_);
  _impl_.varyings_.InternalSwap(&other->_impl_.varyings_);
  _impl_.output_variables_.InternalSwap(&other->_impl_.output_variables_);
  _impl_.interface_blocks_.InternalSwap(&other->_impl_.interface_blocks_);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sha_, &other->_impl_.sha_, arena);
}

// ===================================================================

GpuProgramProto::GpuProgramProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, GpuProgramProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:GpuProgramProto)
}
PROTOBUF_NDEBUG_INLINE GpuProgramProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::GpuProgramProto& from_msg)
      : _has_bits_{from._has_bits_},
        _cached_size_{0},
        sha_(arena, from.sha_),
        program_(arena, from.program_) {}

GpuProgramProto::GpuProgramProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const GpuProgramProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : ::google::protobuf::MessageLite(arena, GpuProgramProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : ::google::protobuf::MessageLite(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  GpuProgramProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.vertex_shader_ = (CheckHasBit(cached_has_bits, 0x00000004U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.vertex_shader_)
                : nullptr;
  _impl_.fragment_shader_ = (CheckHasBit(cached_has_bits, 0x00000008U))
                ? ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.fragment_shader_)
                : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, format_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, format_),
           offsetof(Impl_, program_decompressed_length_) -
               offsetof(Impl_, format_) +
               sizeof(Impl_::program_decompressed_length_));

  // @@protoc_insertion_point(copy_constructor:GpuProgramProto)
}
PROTOBUF_NDEBUG_INLINE GpuProgramProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : _cached_size_{0},
        sha_(arena),
        program_(arena) {}

inline void GpuProgramProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, vertex_shader_),
           0,
           offsetof(Impl_, program_decompressed_length_) -
               offsetof(Impl_, vertex_shader_) +
               sizeof(Impl_::program_decompressed_length_));
}
GpuProgramProto::~GpuProgramProto() {
  // @@protoc_insertion_point(destructor:GpuProgramProto)
  SharedDtor(*this);
}
inline void GpuProgramProto::SharedDtor(MessageLite& self) {
  GpuProgramProto& this_ = static_cast<GpuProgramProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::std::string>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.sha_.Destroy();
  this_._impl_.program_.Destroy();
  delete this_._impl_.vertex_shader_;
  delete this_._impl_.fragment_shader_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1
const ::google::protobuf::internal::ClassDataLite GpuProgramProto_class_data_ =
    GpuProgramProto::InternalGenerateClassData_(GpuProgramProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GpuProgramProto::GetClassData() const {
  return GpuProgramProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
GpuProgramProto::GetClassData() const {
  return GpuProgramProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const GpuProgramProto::ParseTableT_
    GpuProgramProto::_table_ =
        GpuProgramProto::InternalGenerateParseTable_(GpuProgramProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void GpuProgramProto::Clear() {
// @@protoc_insertion_point(message_clear_start:GpuProgramProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  cached_has_bits = _impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _impl_.sha_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _impl_.program_.ClearNonDefaultToEmpty();
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(_impl_.vertex_shader_ != nullptr);
      _impl_.vertex_shader_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(_impl_.fragment_shader_ != nullptr);
      _impl_.fragment_shader_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x00000070U)) {
    ::memset(&_impl_.format_, 0, static_cast<::size_t>(
        reinterpret_cast<char*>(&_impl_.program_decompressed_length_) -
        reinterpret_cast<char*>(&_impl_.format_)) + sizeof(_impl_.program_decompressed_length_));
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::std::string>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL GpuProgramProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const GpuProgramProto& this_ = static_cast<const GpuProgramProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL GpuProgramProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const GpuProgramProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:GpuProgramProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional bytes sha = 1;
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    const ::std::string& _s = this_._internal_sha();
    target = stream->WriteBytesMaybeAliased(1, _s, target);
  }

  // optional uint32 format = 2;
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        2, this_._internal_format(), target);
  }

  // optional bytes program = 3;
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    const ::std::string& _s = this_._internal_program();
    target = stream->WriteBytesMaybeAliased(3, _s, target);
  }

  // optional .ShaderProto vertex_shader = 4;
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.vertex_shader_, this_._impl_.vertex_shader_->GetCachedSize(), target,
        stream);
  }

  // optional .ShaderProto fragment_shader = 5;
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        5, *this_._impl_.fragment_shader_, this_._impl_.fragment_shader_->GetCachedSize(), target,
        stream);
  }

  // optional bool program_is_compressed = 6;
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_program_is_compressed(), target);
  }

  // optional uint32 program_decompressed_length = 7;
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteUInt32ToArray(
        7, this_._internal_program_decompressed_length(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target = stream->WriteRaw(
        this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).data(),
        static_cast<int>(this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size()), target);
  }
  // @@protoc_insertion_point(serialize_to_array_end:GpuProgramProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t GpuProgramProto::ByteSizeLong(const MessageLite& base) {
  const GpuProgramProto& this_ = static_cast<const GpuProgramProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t GpuProgramProto::ByteSizeLong() const {
  const GpuProgramProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:GpuProgramProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void)cached_has_bits;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000020U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x0000005fU)) {
    // optional bytes sha = 1;
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_sha());
    }
    // optional bytes program = 3;
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 + ::google::protobuf::internal::WireFormatLite::BytesSize(
                                      this_._internal_program());
    }
    // optional .ShaderProto vertex_shader = 4;
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.vertex_shader_);
    }
    // optional .ShaderProto fragment_shader = 5;
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.fragment_shader_);
    }
    // optional uint32 format = 2;
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_format());
    }
    // optional uint32 program_decompressed_length = 7;
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += ::_pbi::WireFormatLite::UInt32SizePlusOne(
          this_._internal_program_decompressed_length());
    }
  }
  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    total_size += this_._internal_metadata_.unknown_fields<::std::string>(::google::protobuf::internal::GetEmptyString).size();
  }
  this_._impl_._cached_size_.Set(::_pbi::ToCachedSize(total_size));
  return total_size;
}

void GpuProgramProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<GpuProgramProto*>(&to_msg);
  auto& from = static_cast<const GpuProgramProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:GpuProgramProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_set_sha(from._internal_sha());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_internal_set_program(from._internal_program());
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      ABSL_DCHECK(from._impl_.vertex_shader_ != nullptr);
      if (_this->_impl_.vertex_shader_ == nullptr) {
        _this->_impl_.vertex_shader_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.vertex_shader_);
      } else {
        _this->_impl_.vertex_shader_->MergeFrom(*from._impl_.vertex_shader_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      ABSL_DCHECK(from._impl_.fragment_shader_ != nullptr);
      if (_this->_impl_.fragment_shader_ == nullptr) {
        _this->_impl_.fragment_shader_ = ::google::protobuf::MessageLite::CopyConstruct(arena, *from._impl_.fragment_shader_);
      } else {
        _this->_impl_.fragment_shader_->MergeFrom(*from._impl_.fragment_shader_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.format_ = from._impl_.format_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.program_is_compressed_ = from._impl_.program_is_compressed_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.program_decompressed_length_ = from._impl_.program_decompressed_length_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::std::string>(
      from._internal_metadata_);
}

void GpuProgramProto::CopyFrom(const GpuProgramProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:GpuProgramProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void GpuProgramProto::InternalSwap(GpuProgramProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  auto* arena = GetArena();
  ABSL_DCHECK_EQ(arena, other->GetArena());
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.sha_, &other->_impl_.sha_, arena);
  ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.program_, &other->_impl_.program_, arena);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.program_decompressed_length_)
      + sizeof(GpuProgramProto::_impl_.program_decompressed_length_)
      - PROTOBUF_FIELD_OFFSET(GpuProgramProto, _impl_.vertex_shader_)>(
          reinterpret_cast<char*>(&_impl_.vertex_shader_),
          reinterpret_cast<char*>(&other->_impl_.vertex_shader_));
}

// @@protoc_insertion_point(namespace_scope)
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
#include "google/protobuf/port_undef.inc"
