#include <msp/datafile/objectloader.h>
#include "bindable.h"
#include "gl.h"
-#include "programbuilder.h"
#include "vertexformat.h"
namespace Msp {
void attribute(unsigned, const std::string &);
void fragment_shader(const std::string &);
void geometry_shader(const std::string &);
- void standard();
void vertex_shader(const std::string &);
};
UniformMap uniforms;
LayoutHash uniform_layout_hash;
AttributeMap attributes;
- bool legacy_vars;
public:
/// Constructs an empty Program with no Shaders attached.
Program();
- /// Constructs a Program with standard features.
- Program(const ProgramBuilder::StandardFeatures &);
-
/// Constructs a Program from unified source code using ProgramCompiler.
Program(const std::string &);
void link();
private:
+ static void require_type(GLenum);
void query_uniforms();
void query_uniform_blocks(const std::vector<UniformInfo *> &);
void query_attributes();
const AttributeInfo &get_attribute_info(const std::string &) const;
int get_attribute_location(const std::string &) const;
- bool uses_legacy_variables() const { return legacy_vars; }
-
void bind() const;
static void unbind();
};