14struct WindowCreateInfo;
44 std::shared_ptr<Core::Window> window,
47 const std::string& texture_binding = {},
48 std::vector<std::pair<std::string, std::shared_ptr<Core::VKImage>>> additional_textures = {});
100 std::shared_ptr<Nodes::NodeGraphManager> node_graph_manager,
101 std::shared_ptr<Buffers::BufferManager> buffer_manager,
102 std::shared_ptr<Vruta::TaskScheduler> scheduler,
103 std::shared_ptr<Vruta::EventManager> event_manager,
104 std::shared_ptr<Core::WindowManager> window_manager);
152[[nodiscard]] MAYAFLUX_API
153 std::pair<std::shared_ptr<Layer>, std::shared_ptr<Context>>
155 const std::shared_ptr<Core::Window>& window,
172[[nodiscard]] MAYAFLUX_API
173 std::shared_ptr<Buffers::FormaBuffer>
175 std::shared_ptr<Core::Window> window,
177 const std::string& texture_binding = {});
192[[nodiscard]] MAYAFLUX_API
193 std::shared_ptr<Buffers::FormaBuffer>
195 std::shared_ptr<Core::Window> window,
197 std::vector<std::pair<std::string, std::shared_ptr<Core::VKImage>>> additional_textures);
214 requires std::ranges::contiguous_range<V>
215 && std::is_trivially_copyable_v<std::ranges::range_value_t<V>>
217 std::shared_ptr<Core::Window> window,
221 using Vertex = std::ranges::range_value_t<V>;
222 const size_t cap = std::ranges::size(vertices) *
sizeof(Vertex);
224 buf->submit(vertices);
229 requires std::is_trivially_copyable_v<V>
230 && (!std::ranges::range<V>)
232 std::shared_ptr<Core::Window> window,
265 std::shared_ptr<Core::Window> window,
289 std::shared_ptr<Core::Window> window,
294 std::function<
float(T)> project = {})
296 auto buf =
create_buffer(std::move(window), capacity, topology);
297 auto mapped = make_mapped<T>(initial, std::move(geom), buf);
298 mapped.element.id = layer.
add(mapped.element);
338 std::function<
float(T)> project = {})
340 auto mapped = create_element<T>(
342 std::move(geom), std::move(initial),
346 if (mapped.element.bounds_hint)
347 surface.
layer().
set_bounds(mapped.element.id, *mapped.element.bounds_hint);
348 if (mapped.element.contains)
369[[nodiscard]] MAYAFLUX_API
370 std::pair<Mapped<std::shared_ptr<Kakshya::PlotContainer>>, Surface>
375 std::shared_ptr<Kakshya::PlotContainer> container,
376 Plot::SeriesSpec spec);
417MAYAFLUX_API
void inspect(
const std::shared_ptr<Nodes::Node>& node);
422MAYAFLUX_API
void inspect(
const std::shared_ptr<Buffers::Buffer>& buf);
427MAYAFLUX_API
void inspect(
const std::shared_ptr<Nodes::Network::NodeNetwork>& net);
432MAYAFLUX_API
void inspect(
const std::shared_ptr<Vruta::Event>& ev, std::string_view name = {});
Contains the node-based computational processing system components.
PrimitiveTopology
Vertex assembly primitive topology.