7 /* each shader program will correspond to a pipeline. The pipeline
8 * must have the cull, zbuffer etc since they can't be dynamic states */
10 class ShaderVK : public Shader {
15 virtual bool create(char *buf, unsigned int bsz, const char *fname) override;
23 virtual bool load(const char *fname, SType type) override;
24 virtual void destroy() override;
27 class ShaderProgramVK : public ShaderProgram
36 virtual ~ShaderProgramVK();
38 virtual bool create() override;
40 virtual bool use() const override;
41 virtual bool link() override;
42 virtual void destroy() override;
43 virtual void attach_shader(Shader *shader) override;
45 virtual int get_uniform_location(const char *name) const override;
47 virtual void set_uniformi(int location, int value) override;
48 virtual void set_uniformi(int location, int x, int y) override;
49 virtual void set_uniformi(int location, int x, int y, int z) override;
50 virtual void set_uniformi(int location, int x, int y, int z, int w) override;
52 virtual void set_uniformf(int location, float value) override;
53 virtual void set_uniformf(int location, float x, float y) override;
54 virtual void set_uniformf(int location, float x, float y, float z) override;
55 virtual void set_uniformf(int location, float x, float y, float z, float w) override;
57 virtual void set_uniform_matrix(int location, const Mat4 &mat) override;
59 #endif // SHADER_VK_H_