25 using TextureResolver = std::function<std::shared_ptr<Core::VKImage>(
const std::string&)>;
41namespace Nodes::Network {
52template <
typename ContainerType,
typename... Args>
53 requires std::derived_from<ContainerType, Kakshya::SignalSourceContainer>
56 return std::make_shared<ContainerType>(std::forward<Args>(args)...);
64MAYAFLUX_API std::vector<std::shared_ptr<Buffers::SoundContainerBuffer>>
72MAYAFLUX_API
bool is_audio(
const std::filesystem::path& filepath);
79MAYAFLUX_API
bool is_image(
const std::filesystem::path& filepath);
92MAYAFLUX_API std::shared_ptr<Kakshya::SoundFileContainer>
choose_audio();
101MAYAFLUX_API std::shared_ptr<Kakshya::VideoFileContainer>
choose_video();
110MAYAFLUX_API std::shared_ptr<Buffers::TextureBuffer>
choose_image();
119MAYAFLUX_API std::vector<std::shared_ptr<Buffers::MeshBuffer>>
choose_mesh();
130MAYAFLUX_API std::shared_ptr<Nodes::Network::MeshNetwork>
150 const std::shared_ptr<Kakshya::SoundStreamContainer>& container,
151 const std::string& suggested_name =
"output.wav");
165 const std::shared_ptr<Buffers::TextureBuffer>& buffer,
166 const std::string& suggested_name =
"output.png");
181 const std::shared_ptr<Buffers::TextureBuffer>& buffer,
182 const std::string& suggested_name,
VKBuffer subclass that owns a MeshData and manages its GPU upload.
AudioBuffer implementation backed by a StreamContainer.
A hybrid buffer managing both a textured quad geometry and its pixel data.
Optional orchestration layer for IO reader lifetime and IOService dispatch.
Data-driven interface for managing arbitrary processable signal sources.
File-backed audio container with complete streaming functionality.
Concrete base implementation for streaming audio containers.
File-backed video container — semantic marker over VideoStreamContainer.
NodeNetwork subclass whose nodes are named, hierarchically transformable mesh slots.
std::function< std::shared_ptr< Core::VKImage >(const std::string &)> TextureResolver
Callable that maps a raw material texture path to a GPU image.
@ Core
Core engine, backend, subsystems.
bool is_image(const fs::path &filepath)
std::shared_ptr< Kakshya::VideoFileContainer > choose_video()
Present a native open-file dialog filtered to video formats and load the chosen file via IOManager::l...
bool save_image(const std::shared_ptr< Buffers::TextureBuffer > &buffer, const std::string &suggested_name)
Present a native save-file dialog filtered to image formats and save buffer to the chosen path via IO...
std::shared_ptr< Nodes::Network::MeshNetwork > choose_mesh_network(IO::TextureResolver resolver)
Present a native open-file dialog filtered to 3D model formats and load the chosen file as a MeshNetw...
bool is_audio(const fs::path &filepath)
std::vector< std::shared_ptr< Buffers::MeshBuffer > > choose_mesh()
Present a native open-file dialog filtered to 3D model formats and load the chosen file via IOManager...
std::shared_ptr< Kakshya::SoundFileContainer > choose_audio()
Present a native open-file dialog filtered to audio formats and load the chosen file via IOManager::l...
auto create_container(Args &&... args) -> std::shared_ptr< ContainerType >
creates a new container of the specified type
bool save_audio(const std::shared_ptr< Kakshya::SoundStreamContainer > &container, const std::string &suggested_name)
Present a native save-file dialog and write container to the chosen path via IOManager::write().
std::shared_ptr< IO::IOManager > get_io_manager()
Retrieves the global IOManager instance for file loading and buffer management.
std::shared_ptr< Buffers::TextureBuffer > choose_image()
Present a native open-file dialog filtered to image formats and load the chosen file via IOManager::l...
std::vector< std::shared_ptr< Buffers::SoundContainerBuffer > > prepare_audio_buffers(const std::shared_ptr< Kakshya::SoundFileContainer > &container)
Constructs and initializes per-channel SoundContainerBuffers without registering them.
Main namespace for the Maya Flux audio engine.
Configuration for image writing.