aboutsummaryrefslogtreecommitdiff
path: root/src/main.cc
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-02-22 21:49:07 +0100
committerAdrian Kummerlaender2019-02-22 21:49:07 +0100
commitf0b536ac93b3a9a49dfff8a7637f09b153a3b955 (patch)
treedbddeb503d50276fcee06d889d8c8b1edfd36a02 /src/main.cc
parent1870b510acb351b5956402a21572835aa0d2dee0 (diff)
downloadcompustream-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.cc7
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() ) {