10class NodeGraphManager;
16struct WindowCreateInfo;
70 std::shared_ptr<Nodes::NodeGraphManager> node_graph_manager,
71 std::shared_ptr<Buffers::BufferManager> buffer_manager,
72 std::shared_ptr<Vruta::TaskScheduler> scheduler,
73 std::shared_ptr<Vruta::EventManager> event_manager,
74 std::shared_ptr<Core::WindowManager> window_manager);
112 [[nodiscard]] std::shared_ptr<Buffers::FormaBuffer>
create_buffer(
113 std::shared_ptr<Core::Window> window,
116 const std::string& texture_binding = {},
117 std::vector<std::pair<std::string, std::shared_ptr<Core::VKImage>>>
118 additional_textures = {});
125 [[nodiscard]] std::pair<std::shared_ptr<Layer>, std::shared_ptr<Context>>
126 create_layer(
const std::shared_ptr<Core::Window>& window, std::string
name);
129 [[nodiscard]] Surface create_surface(
130 std::shared_ptr<Core::Window> window, std::string
name);
145 template <
typename T>
148 std::shared_ptr<Core::Window> window,
152 size_t capacity = k_capacity_bytes,
153 std::function<
float(T)> project = {})
155 auto buf =
create_buffer(std::move(window), capacity, topology);
156 auto mapped = make_mapped<T>(std::move(initial), std::move(geom), std::move(buf));
157 mapped.element.id = layer.
add(mapped.element);
167 template <
typename T>
173 std::function<
float(T)> project = {})
175 auto mapped = create_element<T>(
177 std::move(geom), std::move(initial),
178 topology, k_capacity_bytes, std::move(project));
181 if (mapped.element.bounds_hint)
182 surface.
layer().
set_bounds(mapped.element.id, *mapped.element.bounds_hint);
183 if (mapped.element.contains)
205 void place_adornments(
223 bool m_initialized {};
Contains the node-based computational processing system components.
PrimitiveTopology
Vertex assembly primitive topology.
std::shared_ptr< Core::Window > create_window(const Core::WindowCreateInfo &create_info)
Create a new window with specified parameters.
auto create_buffer(uint32_t channel, uint32_t buffer_size, Args &&... args) -> std::shared_ptr< BufferType >
creates a new buffer of the specified type and registers it
Configuration for creating a single window instance.