12#ifndef FOOLSENGINE_SHADERPROGRAM_H
13#define FOOLSENGINE_SHADERPROGRAM_H
119 void setUBool(
const std::string& name,
bool value)
const;
127 void setUInt(
const std::string& name,
int value)
const;
135 void setUFloat(
const std::string& name,
float value)
const;
143 void setUVec2(
const std::string& name,
const glm::vec2& value)
const;
151 void setUVec3(
const std::string& name,
const glm::vec3& value)
const;
159 void setUVec4(
const std::string& name,
const glm::vec4& value)
const;
167 void setUMat4(
const std::string& name,
const glm::mat4& value)
const;
187 void setUniformBlock(
const std::string& name, GLuint bindingPoint)
const;
331 ShaderProgramFromFile():
334 inline static std::string getResourceConstructorName() {
return "fromFile"; }
336 std::shared_ptr<IResource>
createResource(
const nlohmann::json& methodParameters)
override;
ResourceConstructor(int explicitlyInitializeMe)
Definition resource_database.hpp:491
Resource(int explicitlyInitializeMe)
Definition resource_database.hpp:389
std::shared_ptr< IResource > createResource(const nlohmann::json &methodParameters) override
Creates a resource object using the parameters specified in methodParameters.
Definition shader_program.cpp:243
A wrapper over OpenGL's shader programs.
Definition shader_program.hpp:30
void setUVec4(const std::string &name, const glm::vec4 &value) const
Sets a vec4 uniform's value.
Definition shader_program.cpp:200
void disableAttribArray(const std::string &name) const
Disables an attrib array with a given name.
Definition shader_program.cpp:147
void setUVec2(const std::string &name, const glm::vec2 &value) const
Sets a vec2 uniform's value.
Definition shader_program.cpp:181
~ShaderProgram()
Shader destructor; deletes shader from memory.
Definition shader_program.cpp:95
void setUFloat(const std::string &name, float value) const
Sets a float uniform's value.
Definition shader_program.cpp:173
void setUMat4(const std::string &name, const glm::mat4 &value) const
Sets a mat4 uniform's value.
Definition shader_program.cpp:209
GLint getLocationUniformBlock(const std::string &name) const
Gets the ID of one of this shader's uniform blocks with a certain name.
Definition shader_program.cpp:134
void setUInt(const std::string &name, int value) const
Sets an int uniform's value.
Definition shader_program.cpp:165
void setUVec3(const std::string &name, const glm::vec3 &value) const
Sets a vec3 uniform's value.
Definition shader_program.cpp:191
GLuint mID
The ID of the shader program this object is a wrapper over.
Definition shader_program.hpp:213
ShaderProgram(GLuint program)
Constructs a new shader program out of an OpenGL shader program already present in memory.
Definition shader_program.cpp:25
GLint getLocationUniform(const std::string &name) const
Gets the location (ID) of a uniform with a given name.
Definition shader_program.cpp:131
GLint getLocationAttribArray(const std::string &name) const
Retrieves the location (ID) of an attrib array with a given name.
Definition shader_program.cpp:128
void setUniformBlock(const std::string &name, GLuint bindingPoint) const
Binds this shader's named uniform block to a specific uniform binding point.
Definition shader_program.cpp:219
void use() const
Makes this shader the active one in this program's OpenGL context.
Definition shader_program.cpp:126
void destroyResource()
Destroys the shader resource associated with this object.
Definition shader_program.cpp:234
GLuint getProgramID() const
Returns the ID of the OpenGL shader program this class is a wrapper over.
Definition shader_program.cpp:125
void setUBool(const std::string &name, bool value) const
Sets a uniform boolean value.
Definition shader_program.cpp:157
void enableAttribArray(const std::string &name) const
Enables an attrib array with a given name.
Definition shader_program.cpp:138
void releaseResource()
Releases the shader resource associated with this object, assuming that it will be picked up by anoth...
Definition shader_program.cpp:239
static std::string getResourceTypeName()
The resource type string associated with this class.
Definition shader_program.hpp:37
Namespace containing all class definitions and functions related to the ToyMaker engine.
Definition camera_system.hpp:20
Headers relating to resources and their management for a given project.