diff options
author | Adrian Kummerlaender | 2019-02-22 21:49:07 +0100 |
---|---|---|
committer | Adrian Kummerlaender | 2019-02-22 21:49:07 +0100 |
commit | f0b536ac93b3a9a49dfff8a7637f09b153a3b955 (patch) | |
tree | dbddeb503d50276fcee06d889d8c8b1edfd36a02 /src/main.cc | |
parent | 1870b510acb351b5956402a21572835aa0d2dee0 (diff) | |
download | compustream-f0b536ac93b3a9a49dfff8a7637f09b153a3b955.tar compustream-f0b536ac93b3a9a49dfff8a7637f09b153a3b955.tar.gz compustream-f0b536ac93b3a9a49dfff8a7637f09b153a3b955.tar.bz2 compustream-f0b536ac93b3a9a49dfff8a7637f09b153a3b955.tar.lz compustream-f0b536ac93b3a9a49dfff8a7637f09b153a3b955.tar.xz compustream-f0b536ac93b3a9a49dfff8a7637f09b153a3b955.tar.zst compustream-f0b536ac93b3a9a49dfff8a7637f09b153a3b955.zip |
Improvise interactive wall drawing
Internal wall cells need to be disabled to prevent delayed propagation
of the reflected populations.
This is just quickly thrown together - both the visual drawing and the backend's
material handling remain to be improved.
Diffstat (limited to 'src/main.cc')
-rw-r--r-- | src/main.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main.cc b/src/main.cc index 3048979..0a400a5 100644 --- a/src/main.cc +++ b/src/main.cc @@ -10,6 +10,7 @@ #include "buffer/vertex/fluid_cell_buffer.h" #include "buffer/vertex/lattice_cell_buffer.h" +#include "buffer/vertex/material_buffer.h" #include "shader/wrap/graphic_shader.h" #include "shader/wrap/compute_shader.h" @@ -66,6 +67,7 @@ int renderWindow() { std::unique_ptr<LatticeCellBuffer> lattice_a; std::unique_ptr<LatticeCellBuffer> lattice_b; std::unique_ptr<FluidCellBuffer> fluid; + std::unique_ptr<MaterialBuffer> geometry; std::unique_ptr<ComputeShader> collide_shader; std::unique_ptr<ComputeShader> stream_shader; @@ -77,6 +79,7 @@ int renderWindow() { lattice_a = std::make_unique<LatticeCellBuffer>(nX, nY); lattice_b = std::make_unique<LatticeCellBuffer>(nX, nY); fluid = std::make_unique< FluidCellBuffer>(nX, nY); + geometry = std::make_unique< MaterialBuffer>(nX, nY); collide_shader = std::make_unique<ComputeShader>(COLLIDE_SHADER_CODE); stream_shader = std::make_unique<ComputeShader>(STREAM_SHADER_CODE); @@ -94,8 +97,8 @@ int renderWindow() { auto pause_key = window.getKeyWatcher(GLFW_KEY_SPACE); - auto tick_buffers = { lattice_a->getBuffer(), lattice_b->getBuffer(), fluid->getBuffer() }; - auto tock_buffers = { lattice_b->getBuffer(), lattice_a->getBuffer(), fluid->getBuffer() }; + auto tick_buffers = { lattice_a->getBuffer(), lattice_b->getBuffer(), fluid->getBuffer(), geometry->getBuffer() }; + auto tock_buffers = { lattice_b->getBuffer(), lattice_a->getBuffer(), fluid->getBuffer(), geometry->getBuffer() }; window.render([&](bool window_size_changed) { if ( pause_key.wasClicked() ) { |