|
MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
|
| MayaFlux::Buffers::RelaxationGridBuffer::RelaxationGridBuffer | ( | uint32_t | width, |
| uint32_t | height, | ||
| size_t | cell_stride_bytes, | ||
| ShaderSource | rule_source, | ||
| ShaderSource | emit_source | ||
| ) |
Construct an unregistered double-buffered grid buffer.
| width | Grid width in cells. |
| height | Grid height in cells. |
| cell_stride_bytes | Size in bytes of one cell's state. |
| rule_source | Either a path to a hand-written rule shader (for rules needing branchy multi-state logic, e.g. Conway, Wireworld) or a generated ShaderSpec (e.g. RelaxationSpecs::jacobi_diffusion()). |
| emit_source | Either a path to a hand-written emit shader, or a generated ShaderSpec (e.g. RelaxationSpecs::emit_binary()). |
rule_source and emit_source are independent: a hand-written rule paired with a generated emit spec, or any other combination, is fully supported. Processors are constructed from whichever alternative each holds in setup_processors().
Definition at line 17 of file RelaxationGridBuffer.cpp.
References MayaFlux::Journal::BufferManagement, MayaFlux::Journal::Buffers, MayaFlux::Buffers::VKBuffer::get_buffer_resources(), MayaFlux::Registry::BackendRegistry::get_service(), get_state_bytes(), MayaFlux::Journal::Init, MayaFlux::Registry::BackendRegistry::instance(), m_cell_stride_bytes, m_height, m_width, and MF_INFO.
Here is the call graph for this function: