#include <stdio.h>
#include <string.h>
-#include "state_manager.h"
#include "opengl/shader-gl.h"
ShaderGL::ShaderGL()
bool ShaderProgramGL::use() const
{
- if(!is_linked) { //&& !link()) {
+ if(!is_linked) {
return false;
}
glAttachShader(prog, ((ShaderGL *)shader)->sdr);
is_linked = false;
}
-
-int ShaderProgramGL::get_uniform_location(const char *name) const
-{
- if(!use())
- return -1;
-
- return glGetUniformLocation(prog, name);
-}
-
-void ShaderProgramGL::set_uniformi(int location, int value)
-{
- if(!use() || location == -1) {
- return;
- }
-
- glUniform1i(location, value);
-}
-
-void ShaderProgramGL::set_uniformi(int location, int x, int y)
-{
- if(!use() || location == -1) {
- return;
- }
-
- glUniform2i(location, x, y);
-}
-
-void ShaderProgramGL::set_uniformi(int location, int x, int y, int z)
-{
- if(!use() || location == -1) {
- return;
- }
-
- glUniform3i(location, x, y, z);
-}
-
-void ShaderProgramGL::set_uniformi(int location, int x, int y, int z, int w)
-{
- if(!use() || location == -1) {
- return;
- }
-
- glUniform4i(location, x, y, z, w);
-}
-
-void ShaderProgramGL::set_uniformf(int location, float value)
-{
- if(!use() || location == -1) {
- return;
- }
-
- glUniform1f(location, value);
-}
-
-void ShaderProgramGL::set_uniformf(int location, float x, float y)
-{
- if(!use() || location == -1) {
- return;
- }
-
- glUniform2f(location, x, y);
-}
-
-void ShaderProgramGL::set_uniformf(int location, float x, float y, float z)
-{
- if(!use() || location == -1) {
- return;
- }
-
- glUniform3f(location, x, y, z);
-}
-
-void ShaderProgramGL::set_uniformf(int location, float x, float y, float z, float w)
-{
- if(!use() || location == -1) {
- return;
- }
-
- glUniform4f(location, x, y, z, w);
-}
-
-void ShaderProgramGL::set_uniform_matrix(int location, const Mat4 &mat)
-{
- if(!use() || location == -1) {
- fprintf(stderr, "FOO\n");
- return;
- }
-
- glUniformMatrix4fv(location, 1, GL_FALSE, mat[0]);
-}
\ No newline at end of file