39 halp_meta(name,
"Extract buffer (by name)")
40 halp_meta(category,
"Visuals/Utilities")
41 halp_meta(c_name,
"extract_buffer_by_name")
42 halp_meta(description,
"Extract a named vertex attribute, raw buffer or auxiliary buffer from geometry.")
44 manual_url,
"https://ossia.io/score-docs/processes/extract-buffer.html")
45 halp_meta(uuid,
"3c9d6c2b-1f04-4f7d-9bc2-a4b1d7c8e5f0")
57 halp_meta(name,
"Geometry");
58 halp::dynamic_gpu_geometry
mesh;
59 float transform[16]{};
60 bool dirty_mesh =
false;
61 bool dirty_transform =
false;
64 halp::combobox_t<
"Mode", Mode> mode;
65 struct : halp::lineedit<
"Name / index",
"position">
67 halp_meta(symbol,
"name")
69 halp::toggle<
"Pad vec3 to vec4"> pad_to_vec4;
74 halp::gpu_buffer_output<
"Buffer"> buffer;
84 void runInitialPasses(
92 [[nodiscard]]
static std::optional<attribute_lookup>
93 resolveAttribute(
const halp::dynamic_gpu_geometry&
mesh, std::string_view n)
noexcept;
100 int64_t byte_offset{};
103 [[nodiscard]]
static BufferRef
104 resolveBuffer(
const halp::dynamic_gpu_geometry& mesh, std::string_view n)
noexcept;
110 ExtractionStrategyVariant m_strategy;
111 Mode m_currentMode{Attribute};
112 std::string m_currentName{};
113 bool m_currentPadToVec4{
false};