- struct StandardFeatures
- {
- class Loader: public DataFile::ObjectLoader<StandardFeatures>
- {
- public:
- Loader(StandardFeatures &);
- };
-
- bool texture;
- bool material;
- bool lighting;
- bool specular;
- bool normalmap;
- bool shadow;
- bool reflection;
- bool transform;
-
- StandardFeatures();
-
- std::string create_flags() const;
- };
-
+ typedef unsigned LayoutHash;
- Program(const StandardFeatures &);
+
+ /// Constructs a Program with standard features.
+ Program(const ProgramBuilder::StandardFeatures &);
+
+ /// Constructs a Program from vertex and fragment shader source code.
void attach_shader(Shader &shader);
void attach_shader_owned(Shader *shader);
void detach_shader(Shader &shader);
void attach_shader(Shader &shader);
void attach_shader_owned(Shader *shader);
void detach_shader(Shader &shader);
- void add_standard_shaders(const StandardFeatures &);
-private:
- static std::string process_standard_source(const char **, const std::string &);
-public:
- const ShaderList &get_shaders() const { return shaders; }
+ const ShaderList &get_attached_shaders() const { return shaders; }
static bool uniform_location_compare(const UniformInfo *, const UniformInfo *);
public:
bool is_linked() const { return linked; }
std::string get_info_log() const;
static bool uniform_location_compare(const UniformInfo *, const UniformInfo *);
public:
bool is_linked() const { return linked; }
std::string get_info_log() const;
const UniformBlockMap &get_uniform_blocks() const { return uniform_blocks; }
const UniformBlockInfo &get_uniform_block_info(const std::string &) const;
const UniformMap &get_uniforms() const { return uniforms; }
const UniformInfo &get_uniform_info(const std::string &) const;
int get_uniform_location(const std::string &) const;
const UniformBlockMap &get_uniform_blocks() const { return uniform_blocks; }
const UniformBlockInfo &get_uniform_block_info(const std::string &) const;
const UniformMap &get_uniforms() const { return uniforms; }
const UniformInfo &get_uniform_info(const std::string &) const;
int get_uniform_location(const std::string &) const;