From 44f5ac32a68a617f93704d44c4339f7db13b323e Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sat, 15 Dec 2018 23:09:32 +0100 Subject: Hacky D2Q9 BGK LBM on GPU using GLSL compute shaders Improvised on top of computicles's scaffolding. Works in a world where _works_ is defined as "displays stuff on screen that invokes thoughts of fluid movement". --- src/shader/wrap/compute_shader.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/shader/wrap/compute_shader.h (limited to 'src/shader/wrap/compute_shader.h') diff --git a/src/shader/wrap/compute_shader.h b/src/shader/wrap/compute_shader.h new file mode 100644 index 0000000..74c8270 --- /dev/null +++ b/src/shader/wrap/compute_shader.h @@ -0,0 +1,32 @@ +#pragma once + +#include + +#include + +class ComputeShader { +private: + const GLuint _id; + + bool _good; + +public: + struct Guard { + const GLuint _id; + + Guard(GLuint id); + ~Guard(); + }; + + Guard use() const; + + ComputeShader(const std::string& src); + ~ComputeShader(); + + bool isGood() const; + + GLuint setUniform(const std::string& name, float x, float y) const; + + void workOn(GLuint bufferA, GLuint bufferB, GLuint bufferC) const; + void dispatch() const; +}; -- cgit v1.2.3