X-Git-Url: http://git.mutantstargoat.com?a=blobdiff_plain;f=src%2Fvulkan%2Fshader-vk.h;h=18c8818700e186dc843df8b63c50559520bbcf68;hb=86c912d603be75ac8b2fdb2229f1696e9c0c01d9;hp=1914a4f0bd1b41eb2a1f049b79a5cc2b1f68a27d;hpb=32feb79dc3b9ddeeab84a0329d53b8aaff86bb80;p=demo diff --git a/src/vulkan/shader-vk.h b/src/vulkan/shader-vk.h index 1914a4f..18c8818 100644 --- a/src/vulkan/shader-vk.h +++ b/src/vulkan/shader-vk.h @@ -7,54 +7,39 @@ /* each shader program will correspond to a pipeline. The pipeline * must have the cull, zbuffer etc since they can't be dynamic states */ -struct Pipeline { +class ShaderVK : public Shader { +private: + VkShaderModule sdr; -}; - -class ShaderVK : public Shader -{ 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: - Pipeline pipeline; - /*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_