5 #include <msp/gl/objectinstance.h>
6 #include <msp/gl/texture2d.h>
8 class Water: public Msp::GL::ObjectInstance
13 const Msp::GL::Mesh &terrain;
23 Msp::GL::Texture2D surface;
24 Msp::GL::Texture2D velocity;
25 Msp::GL::Texture2D clamping;
34 float stepsize = 0.001f;
36 Msp::GL::Texture2D bottom;
37 Msp::GL::Texture2D normals;
38 Msp::GL::Texture2D variance_x;
39 Msp::GL::Texture2D variance_y;
40 const Msp::GL::Sampler &sampler;
41 const Msp::GL::Program &sim_integrate;
42 const Msp::GL::Program &sim_velocity;
43 const Msp::GL::Program &sim_clamp;
44 const Msp::GL::Program &normals_shader;
45 const Msp::GL::Program &variance_x_shader;
46 const Msp::GL::Program &variance_y_shader;
47 Msp::GL::ProgramData sim_shdata;
48 Msp::GL::ProgramData shdata;
49 bool simulated = false;
52 Water(const Msp::GL::Object &, Msp::DataFile::Collection &, const Region &);
55 void setup_frame(Msp::GL::Renderer &) override;
56 void finish_frame() override;
58 void setup_render(Msp::GL::Renderer &, Msp::GL::Tag) const override;