void source(const std::string &str);
void source(const char *str, int len);
void compile();
void source(const std::string &str);
void source(const char *str, int len);
void compile();
bool get_compiled() const { return compiled; }
int get_param(GLenum param) const;
std::string get_info_log() const;
private:
bool get_compiled() const { return compiled; }
int get_param(GLenum param) const;
std::string get_info_log() const;
private: