| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifndef PARTICLE_COMPUTE_SHADER
- #define PARTICLE_COMPUTE_SHADER
- #include <vector>
- #include <string>
- #include <iostream>
- #include <fstream>
- #include <sstream>
- /* OpenGL */
- #include "glad/glad.h"
- #include <GLFW/glfw3.h>
- class ComputeShader
- {
- private:
- std::string m_shader_filename{};
- std::string m_shader_source{};
- GLuint m_program = 0;
- GLuint m_shader = 0;
- public:
- ComputeShader() = default;
- ComputeShader(std::string &shader_filename);
- ~ComputeShader();
- GLuint get_program() const;
-
- bool load(std::string shader_filename);
- bool compile();
- void activate();
- void deactivate();
- void execute(int n);
- void wait();
- bool release();
- bool set_uniform(char const * name, float value);
- bool set_uniform(char const * name, int value);
- };
- #endif // PARTICLE_COMPUTE_SHADER
|