X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fvulkan%2Fshader-vk.h;h=18c8818700e186dc843df8b63c50559520bbcf68;hb=86c912d603be75ac8b2fdb2229f1696e9c0c01d9;hp=88e07bcb38a6719eef1052b052a021f06e22660c;hpb=72995482b98ff2a014ddd737131a0935ead89977;p=demo diff --git a/src/vulkan/shader-vk.h b/src/vulkan/shader-vk.h index 88e07bc..18c8818 100644 --- a/src/vulkan/shader-vk.h +++ b/src/vulkan/shader-vk.h @@ -4,49 +4,42 @@ #include #include "shader.h" -class ShaderVK : public Shader -{ +/* each shader program will correspond to a pipeline. The pipeline + * must have the cull, zbuffer etc since they can't be dynamic states */ + +class ShaderVK : public Shader { +private: + VkShaderModule sdr; + protected: - SType type; + ShaderType type; std::string name; virtual bool create(char *buf, unsigned int bsz, const char *fname) override; public: + ShaderVK(); virtual ~ShaderVK(); - virtual bool load(const char *fname, SType type); + virtual bool load(const char *fname, ShaderType type) override; virtual void destroy() override; }; class ShaderProgramVK : public ShaderProgram { protected: - /*ubo*/ + VkPipeline gpipeline; public: ShaderProgramVK(); virtual ~ShaderProgramVK(); virtual bool create() override; + virtual bool use() const override; virtual bool link() override; virtual void destroy() override; virtual void attach_shader(Shader *shader) override; - - virtual int get_uniform_location(const char *name) const override; - - virtual void set_uniformi(int location, int value) override; - virtual void set_uniformi(int location, int x, int y) override; - virtual void set_uniformi(int location, int x, int y, int z) override; - virtual void set_uniformi(int location, int x, int y, int z, int w) override; - - virtual void set_uniformf(int location, float value) override; - virtual void set_uniformf(int location, float x, float y) override; - virtual void set_uniformf(int location, float x, float y, float z) override; - virtual void set_uniformf(int location, float x, float y, float z, float w) override; - - virtual void set_uniform_matrix(int location, const Mat4 &mat) override; }; -#endif // SHADER_VK_H_ \ No newline at end of file +#endif // SHADER_VK_H_