aboutsummaryrefslogtreecommitdiff
path: root/src/main.cc
diff options
context:
space:
mode:
authorAdrian Kummerlaender2019-02-22 22:24:30 +0100
committerAdrian Kummerlaender2019-02-22 22:24:30 +0100
commit9779fd7484f7af6d10ae28ca3763c6d938c341e3 (patch)
tree715245275169857f70d07d516bb0bc41e14fff45 /src/main.cc
parentf0b536ac93b3a9a49dfff8a7637f09b153a3b955 (diff)
downloadcompustream-9779fd7484f7af6d10ae28ca3763c6d938c341e3.tar
compustream-9779fd7484f7af6d10ae28ca3763c6d938c341e3.tar.gz
compustream-9779fd7484f7af6d10ae28ca3763c6d938c341e3.tar.bz2
compustream-9779fd7484f7af6d10ae28ca3763c6d938c341e3.tar.lz
compustream-9779fd7484f7af6d10ae28ca3763c6d938c341e3.tar.xz
compustream-9779fd7484f7af6d10ae28ca3763c6d938c341e3.tar.zst
compustream-9779fd7484f7af6d10ae28ca3763c6d938c341e3.zip
Tidy up wall drawing and geometry initialization
Diffstat (limited to 'src/main.cc')
-rw-r--r--src/main.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main.cc b/src/main.cc
index 0a400a5..f685c8f 100644
--- a/src/main.cc
+++ b/src/main.cc
@@ -79,7 +79,15 @@ 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);
+ geometry = std::make_unique< MaterialBuffer>(nX, nY, [](int x, int y) -> int {
+ if ( x == 0 || y == 0 || x == nX-1 || y == nY-1 ) {
+ return 0; // disable end of world
+ }
+ if ( (x == 1 || x == nX-2) && (y == 1 || y == nY-2) ) {
+ return 2; // bounce back outer walls
+ }
+ return 1; // everything shall be fluid
+ });
collide_shader = std::make_unique<ComputeShader>(COLLIDE_SHADER_CODE);
stream_shader = std::make_unique<ComputeShader>(STREAM_SHADER_CODE);