{{- /* -------------------------------------------------------------------------------- Template file for use with tools/src/cmd/gen to generate builtin_value.cc See: * tools/src/cmd/gen for structures used by this template * https://golang.org/pkg/text/template/ for documentation on the template syntax -------------------------------------------------------------------------------- */ -}} {{- Import "src/tint/templates/enums.tmpl.inc" -}} #include "src/tint/ast/interpolate_attribute.h" #include #include "src/tint/program_builder.h" TINT_INSTANTIATE_TYPEINFO(tint::ast::InterpolateAttribute); namespace tint::ast { InterpolateAttribute::InterpolateAttribute(ProgramID pid, NodeID nid, const Source& src, InterpolationType ty, InterpolationSampling smpl) : Base(pid, nid, src), type(ty), sampling(smpl) {} InterpolateAttribute::~InterpolateAttribute() = default; std::string InterpolateAttribute::Name() const { return "interpolate"; } const InterpolateAttribute* InterpolateAttribute::Clone(CloneContext* ctx) const { // Clone arguments outside of create() call to have deterministic ordering auto src = ctx->Clone(source); return ctx->dst->create(src, type, sampling); } {{ Eval "ParseEnum" (Sem.Enum "interpolation_type")}} {{ Eval "EnumOStream" (Sem.Enum "interpolation_type")}} {{ Eval "ParseEnum" (Sem.Enum "interpolation_sampling")}} {{ Eval "EnumOStream" (Sem.Enum "interpolation_sampling")}} } // namespace tint::ast