updated makefile for supporting different target architectures
use "ARCH=arch_name make" restructured project folder, implementations and headers together under sources/
This commit is contained in:
40
sources/GL_STUFF/SCENE/ShadingHelper.cpp
Executable file
40
sources/GL_STUFF/SCENE/ShadingHelper.cpp
Executable file
@@ -0,0 +1,40 @@
|
||||
#include "ShadingHelper.h"
|
||||
#include <glm/gtc/type_ptr.hpp>
|
||||
|
||||
ShadingHelper::ShadingHelper(GLuint program) {
|
||||
this->program = program;
|
||||
}
|
||||
|
||||
void ShadingHelper::useProgram() {
|
||||
glUseProgram(program);
|
||||
}
|
||||
|
||||
GLuint ShadingHelper::getProgram() {
|
||||
return program;
|
||||
}
|
||||
|
||||
void ShadingHelper::bindTexture2D(GLuint texUnitIndex, GLuint texture, std::string uniform) {
|
||||
glActiveTexture(GL_TEXTURE0 + texUnitIndex);
|
||||
glBindTexture(GL_TEXTURE_2D, texture);
|
||||
glUniform1i(glGetUniformLocation(program, &uniform[0]), texUnitIndex);
|
||||
}
|
||||
|
||||
void ShadingHelper::bindViewUniforms(glm::mat4 projection, glm::mat4 view) {
|
||||
GLint projectionUniform = glGetUniformLocation(program, "Projection");
|
||||
glUniformMatrix4fv(projectionUniform, 1, GL_FALSE, value_ptr(projection));
|
||||
GLint viewUniform = glGetUniformLocation(program, "View");
|
||||
glUniformMatrix4fv(viewUniform, 1, GL_FALSE, value_ptr(view));
|
||||
}
|
||||
|
||||
void ShadingHelper::bindLightUniforms(glm::vec3 lightPos, glm::vec3 lightCol, glm::vec3 eyePos) {
|
||||
glUniform3f(glGetUniformLocation(program, "lightPos"), lightPos.x, lightPos.y, lightPos.z);
|
||||
glUniform3f(glGetUniformLocation(program, "lightCol"), lightCol.x, lightCol.y, lightCol.z);
|
||||
glUniform3f(glGetUniformLocation(program, "eyePos"), eyePos.x, eyePos.y, eyePos.z);
|
||||
}
|
||||
|
||||
void ShadingHelper::bindModelUniforms(glm::mat4 locRotScl, glm::mat4 rotScl) {
|
||||
GLint localTransformUniform = glGetUniformLocation(program, "Model");
|
||||
glUniformMatrix4fv(localTransformUniform, 1, GL_FALSE, value_ptr(locRotScl));
|
||||
GLint onlyRotationUniform = glGetUniformLocation(program, "ModelRot");
|
||||
glUniformMatrix4fv(onlyRotationUniform, 1, GL_FALSE, value_ptr(rotScl));
|
||||
}
|
||||
Reference in New Issue
Block a user