|
MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
|
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 |
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.