MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Portal::Forma::internal::Atelier Class Reference

Process-wide Forma workshop. More...

#include <Atelier.hpp>

+ Collaboration diagram for MayaFlux::Portal::Forma::internal::Atelier:

Public Member Functions

 Atelier (Atelier &&)=delete
 
 Atelier (const Atelier &)=delete
 
Text::AtlasImage & atlas_image (const Text::GlyphAtlas &atlas)
 The GPU image of atlas, shared by every text slice drawing from it.
 
Bridge & bridge ()
 Bridge instance constructed during initialize.
 
std::shared_ptr< Buffers::FormaBuffer > create_buffer (Graphics::RenderConfig render)
 The single buffer construction path.
 
template<typename T >
Mapped< T > create_element (Surface &surface, FormaTarget target, GeometryFn< T > geom, T initial, std::function< float(T)> project={})
 create_element writing into target, which may be a slice shared with other elements.
 
template<typename T >
Mapped< T > create_element (Surface &surface, GeometryFn< T > geom, T initial, Graphics::PrimitiveTopology topology=Graphics::PrimitiveTopology::TRIANGLE_STRIP, std::function< float(T)> project={})
 create_element on a buffer of its own, as a slice of topology, followed by one sync so bounds_hint and contains from the geometry function reach the Layer before the first frame.
 
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.
 
Surface create_surface (const Core::WindowCreateInfo &window_info, std::string name)
 Build a window through create_window, then a Surface on it.
 
Surface create_surface (SurfaceConfig config)
 Build a Surface from a SurfaceConfig, creating Layer and Context when config.layer/config.ctx are unset.
 
std::shared_ptr< Core::Window > create_window (const Core::WindowCreateInfo &info)
 Create a window through the stored WindowManager and show it.
 
bool initialize (std::shared_ptr< Nodes::NodeGraphManager > node_graph_manager, std::shared_ptr< Buffers::BufferManager > buffer_manager, std::shared_ptr< Vruta::TaskScheduler > scheduler, std::shared_ptr< Vruta::EventManager > event_manager, std::shared_ptr< Core::WindowManager > window_manager)
 
Inspector & inspector ()
 Inspector instance constructed during initialize.
 
bool is_initialized () const noexcept
 
Atelier & operator= (Atelier &&)=delete
 
Atelier & operator= (const Atelier &)=delete
 
void place_adornments (Surface &surface, const Plot::SeriesSpec &spec, uint32_t relate_to, const std::shared_ptr< Buffers::FormaBuffer > &batch={})
 Create and place every adornment declared on spec.
 
void shutdown ()
 
template<typename T >
void track (Scrollable &panel, Layer &layer, const Mapped< T > &mapped, Kinesis::AABB2D base_bounds, std::function< void(Kinesis::AABB2D)> reposition={})
 Register mapped's element for scroll reflow in panel.
 

Static Public Member Functions

static Atelier & instance ()
 

Private Member Functions

 Atelier ()
 
 ~Atelier ()
 

Private Attributes

std::unordered_map< const Text::GlyphAtlas *, Text::AtlasImage > m_atlas_images
 
std::unique_ptr< Bridge > m_bridge
 
std::shared_ptr< Buffers::BufferManager > m_buffer_manager
 
std::shared_ptr< Vruta::EventManager > m_event_manager
 
bool m_initialized {}
 
std::unique_ptr< Inspector > m_inspect
 
std::shared_ptr< Nodes::NodeGraphManager > m_node_graph_manager
 
std::shared_ptr< Vruta::TaskScheduler > m_scheduler
 
std::shared_ptr< Core::WindowManager > m_window_manager
 

Detailed Description

Process-wide Forma workshop.

Not part of the public surface.

Holds the engine references stored by Portal::Forma::initialize and owns every construction path that depends on them: buffers, layers, contexts, surfaces, elements, windows.

Everything under Internal/ is implementation detail and carries no stability guarantee. The public entry points in Forma.hpp are thin wrappers over the methods here. User code calls those, not these.

Lifetime follows the Portal::Graphics singleton contract: the Meyers instance is never destroyed, and shutdown() releases the held references explicitly before static teardown.

Definition at line 55 of file Atelier.hpp.


The documentation for this class was generated from the following files: