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

◆ make_mapped()

template<typename T >
Mapped< T > MayaFlux::Portal::Forma::make_mapped ( T  initial,
GeometryFn< T >  geometry,
FormaTarget  buffer 
)

Construct a Mapped<T> with a freshly allocated MappedState.

Parameters
initialStarting value.
geometryGeometry function producing vertex bytes from a value.
bufferVKBuffer whose raw bytes the geometry function writes into.
Returns
Ready-to-use Mapped. Register element with a Layer before first sync().

Definition at line 180 of file Mapped.hpp.

184{
185 auto st = std::make_shared<MappedState<T>>();
186 st->write(initial);
187
188 Element el;
189 el.buffer = std::move(buffer);
190
191 Mapped<T> m;
192 m.state = std::move(st);
193 m.geometry_fn = std::move(geometry);
194 m.element = std::move(el);
195 m.last_version = static_cast<Version>(-1);
196 return m;
197}
std::shared_ptr< NetworkGeometryBuffer > buffer
uint64_t Version
Version counter incremented on every value write.
Definition Mapped.hpp:22
FormaTarget buffer
Where this region's rendered output is written: a buffer of its own, or a slice of one it shares.
Definition Element.hpp:82
A bounded, renderable region on a window surface.
Definition Element.hpp:61
std::shared_ptr< MappedState< T > > state
Shared value carrier. External systems hold a copy of this ptr.
Definition Mapped.hpp:98
GeometryFn< T > geometry_fn
Geometry regeneration function. Set once at construction.
Definition Mapped.hpp:101
Element element
The Element registered with the Layer.
Definition Mapped.hpp:105
Version last_version
Last version seen by sync().
Definition Mapped.hpp:109
Infrastructure for a continuously-mapped value whose GPU geometry tracks it.
Definition Mapped.hpp:96

References buffer, MayaFlux::Portal::Forma::Element::buffer, MayaFlux::Portal::Forma::Mapped< T >::element, MayaFlux::Portal::Forma::Mapped< T >::geometry_fn, MayaFlux::Portal::Forma::Mapped< T >::last_version, and MayaFlux::Portal::Forma::Mapped< T >::state.