some descriptor functions in vkutil - wip
[demo] / src / vulkan / shader-vk.h
index 88e07bc..18c8818 100644 (file)
@@ -4,49 +4,42 @@
 #include <string>
 #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_