Adding bitmap fonts

This commit is contained in:
2023-03-14 18:55:10 -07:00
parent f5c5d1f49d
commit 9c9c64228a
17 changed files with 328 additions and 20 deletions

View File

@ -69,6 +69,11 @@ void ShaderProgram::compileShader(
glBindAttribLocation(this->shaderProgram, 1, "aTexCoord");
}
void ShaderProgram::bindAttributeLocation(std::string name, int32_t location) {
if(this->shaderProgram == -1) throw "Shader has not yet been compiled";
glBindAttribLocation(this->shaderProgram, location, name.c_str());
}
void ShaderProgram::setTexture(shaderparameter_t param, textureslot_t slot) {
glUniform1i(param, slot);
}

View File

@ -25,14 +25,23 @@ namespace Dawn {
protected:
/**
* Compiles a GLSL shader and stores it on the GPU, updates the underlying
* pointers for you.
* Compiles a GLSL/HLSL shader and stores it on the GPU, updates the
* underlying pointers for you.
*
* @param vertexShader The string source of the vertex shader.
* @param fragmentShader The string source of the fragment shader.
*/
void compileShader(std::string vertexShader, std::string fragmentShader);
/**
* Typically HLSL only, this method allows you to specify where vbo
* attributes are bound. Typically 0 for positions, 1 for coordinates,
* etc.
*
* @param name Attribute name in the HLSL shader.
* @param location Index pointing to which location it is to be bound to.
*/
void bindAttributeLocation(std::string name, int32_t location);
public:
/**

View File

@ -83,6 +83,9 @@ namespace Dawn {
"return o_Color;\n"
"}\n"
);
this->bindAttributeLocation("aPos", 0);
this->bindAttributeLocation("aTexCoord", 1);
#else
#error Shader Type must be either GLSL or HLSL
#endif