diff options
author | Adrian Kummerlaender | 2019-02-22 22:24:30 +0100 |
---|---|---|
committer | Adrian Kummerlaender | 2019-02-22 22:24:30 +0100 |
commit | 9779fd7484f7af6d10ae28ca3763c6d938c341e3 (patch) | |
tree | 715245275169857f70d07d516bb0bc41e14fff45 /src/main.cc | |
parent | f0b536ac93b3a9a49dfff8a7637f09b153a3b955 (diff) | |
download | compustream-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.cc | 10 |
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); |