MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ inspect_buffers()

MAYAFLUX_API void MayaFlux::Portal::Forma::inspect_buffers ( )

Open or show the BufferManager inspection window.

First call creates a dedicated window, builds the InspectResult, and schedules tap_all() via Bridge. Subsequent calls show() the existing window.

Definition at line 197 of file Forma.cpp.

198{
199 auto& atelier = internal::atelier();
200
201 if (g_inspect_buffers_surface && g_inspect_buffers_surface->window()
202 && !g_inspect_buffers_surface->window()->should_close()) {
203 g_inspect_buffers_surface->window()->show();
204 return;
205 }
206
207 if (g_inspect_buffers_surface) {
208 LayoutCursor cursor;
209 atelier.inspector().destroy(
210 atelier.inspector().buffer_manager(*g_inspect_buffers_surface, cursor));
211 discard_inspect_surface(g_inspect_buffers_surface);
212 }
213
214 auto window = atelier.create_window(
215 Core::WindowCreateInfo { .title = "BufferManager", .width = k_inspect_w, .height = k_inspect_h });
216
217 auto [layer, ctx] = atelier.create_layer(window, "BufferManager");
218 g_inspect_buffers_surface.emplace(SurfaceConfig {
219 .window = std::move(window),
220 .layer = std::move(layer),
221 .ctx = std::move(ctx),
222 });
223 LayoutCursor cursor;
224 auto& result = atelier.inspector().buffer_manager(*g_inspect_buffers_surface, cursor);
225 atelier.bridge().spawn_sync(g_inspect_buffers_surface->layer(),
226 result.group.header.header_id, [&result] { result.tap_all(); });
227}
std::weak_ptr< Core::Window > window
Definition Picker.cpp:23
void spawn_sync(Layer &layer, uint32_t id, std::function< void()> sync_fn)
Spawn a presentation sync task scoped to a Layer.
Definition Bridge.cpp:450
InspectResult & buffer_manager(Surface &surface, LayoutCursor &cursor, float x_min=-0.95F, float x_max=0.95F, float row_h=0.05F)
Inspect the full BufferManager state across all active tokens.
void destroy(InspectResult &result)
Destroy an InspectResult and release its resources.
Definition Inspector.cpp:42
std::shared_ptr< Core::Window > create_window(const Core::WindowCreateInfo &info)
Create a window through the stored WindowManager and show it.
Definition Atelier.cpp:104
Inspector & inspector()
Inspector instance constructed during initialize.
Definition Atelier.cpp:90
Bridge & bridge()
Bridge instance constructed during initialize.
Definition Atelier.cpp:80
std::pair< std::shared_ptr< Layer >, std::shared_ptr< Context > > create_layer(const std::shared_ptr< Core::Window > &window, std::string name)
Construct a Layer and a Context wired to window.
Definition Atelier.cpp:150
Atelier & atelier()
Accessor for the process-wide Atelier.
Definition Atelier.hpp:304
std::string title
Window title/identifier.
Configuration for creating a single window instance.

References MayaFlux::Portal::Forma::internal::atelier(), MayaFlux::Portal::Forma::internal::Atelier::bridge(), MayaFlux::Portal::Forma::Inspector::buffer_manager(), MayaFlux::Portal::Forma::internal::Atelier::create_layer(), MayaFlux::Portal::Forma::internal::Atelier::create_window(), MayaFlux::Portal::Forma::Inspector::destroy(), MayaFlux::Portal::Forma::internal::Atelier::inspector(), MayaFlux::Portal::Forma::Bridge::spawn_sync(), MayaFlux::Core::WindowCreateInfo::title, window, and MayaFlux::Portal::Forma::SurfaceConfig::window.

+ Here is the call graph for this function: