#include "src/tint/lang/wgsl/ast/transform/vertex_pulling.h"
#include <algorithm>
#include <utility>
#include "src/tint/lang/core/builtin_value.h"
#include "src/tint/lang/wgsl/ast/assignment_statement.h"
#include "src/tint/lang/wgsl/ast/variable_decl_statement.h"
#include "src/tint/lang/wgsl/program/clone_context.h"
#include "src/tint/lang/wgsl/program/program_builder.h"
#include "src/tint/lang/wgsl/resolver/resolve.h"
#include "src/tint/lang/wgsl/sem/variable.h"
#include "src/tint/utils/containers/map.h"
#include "src/tint/utils/macros/compiler.h"
#include "src/tint/utils/math/math.h"
#include "src/tint/utils/rtti/switch.h"
#include "src/tint/utils/text/string_stream.h"
TINT_INSTANTIATE_TYPEINFO(…);
TINT_INSTANTIATE_TYPEINFO(…);
namespace tint::ast::transform {
usingnamespacetint::core::fluent_types;
usingnamespacetint::core::number_suffixes;
namespace {
enum class BaseWGSLType { … };
enum class VertexDataType { … };
diag::Diagnostic& operator<<(diag::Diagnostic& out, VertexFormat format) { … }
struct AttributeWGSLType { … };
struct VertexFormatType { … };
bool IsTypeCompatible(AttributeWGSLType wgslType, VertexFormatType vertexFormatType) { … }
AttributeWGSLType WGSLTypeOf(const core::type::Type* ty) { … }
VertexFormatType VertexFormatTypeOf(VertexFormat format) { … }
}
struct VertexPulling::State { … };
VertexPulling::VertexPulling() = default;
VertexPulling::~VertexPulling() = default;
Transform::ApplyResult VertexPulling::Apply(const Program& src,
const DataMap& inputs,
DataMap&) const { … }
VertexPulling::Config::Config() = default;
VertexPulling::Config::Config(const Config&) = default;
VertexPulling::Config::~Config() = default;
VertexPulling::Config& VertexPulling::Config::operator=(const Config&) = default;
VertexBufferLayoutDescriptor::VertexBufferLayoutDescriptor() = default;
VertexBufferLayoutDescriptor::VertexBufferLayoutDescriptor(
uint32_t in_array_stride,
VertexStepMode in_step_mode,
std::vector<VertexAttributeDescriptor> in_attributes)
: … { … }
VertexBufferLayoutDescriptor::VertexBufferLayoutDescriptor(
const VertexBufferLayoutDescriptor& other) = default;
VertexBufferLayoutDescriptor& VertexBufferLayoutDescriptor::operator=(
const VertexBufferLayoutDescriptor& other) = default;
VertexBufferLayoutDescriptor::~VertexBufferLayoutDescriptor() = default;
}