X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fvulkan%2Fshader-vk.h;h=efc576ffb5a354cdbb02332b5c0219d5b101d3f7;hb=05d269a194496bcef85da78652b947f5bf1c9bcf;hp=88e07bcb38a6719eef1052b052a021f06e22660c;hpb=72995482b98ff2a014ddd737131a0935ead89977;p=demo diff --git a/src/vulkan/shader-vk.h b/src/vulkan/shader-vk.h index 88e07bc..efc576f 100644 --- a/src/vulkan/shader-vk.h +++ b/src/vulkan/shader-vk.h @@ -4,8 +4,10 @@ #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 { protected: SType type; std::string name; @@ -13,40 +15,31 @@ protected: virtual bool create(char *buf, unsigned int bsz, const char *fname) override; public: + VkShaderModule sm; + ShaderVK(); virtual ~ShaderVK(); - virtual bool load(const char *fname, SType type); + virtual bool load(const char *fname, SType type) override; virtual void destroy() override; }; class ShaderProgramVK : public ShaderProgram { +private: + VkPipeline gpipeline; + protected: - /*ubo*/ 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_