3 This file is part of libmspgl
4 Copyright © 2007 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
8 #ifndef MSP_GL_PROGRAM_H_
9 #define MSP_GL_PROGRAM_H_
14 #include <msp/datafile/loader.h>
26 std::list<Shader *> shaders;
30 static Program *cur_prog;
33 class Loader: public DataFile::Loader
43 void vertex_shader(const std::string &);
44 void fragment_shader(const std::string &);
48 Program(const std::string &, const std::string &);
51 void attach_shader(Shader &shader);
52 void detach_shader(Shader &shader);
53 const std::list<Shader *> &get_shaders() const { return shaders; }
54 void set_del_shaders(bool);
55 void bind_attribute(int, const std::string &);
57 int get_param(GLenum param) const;
58 bool get_linked() const { return linked; }
59 std::string get_info_log() const;
61 int get_uniform_location(const std::string &) const;
62 void uniform(int, int);
63 void uniform(int, float);
64 void uniform(int, float, float);
65 void uniform(int, float, float, float);
66 void uniform(int, float, float, float, float);
67 void uniform_matrix4(int, const float *);