added the readme
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
|
||||
#include "shaderClass.h"
|
||||
#include "VBO.h"
|
||||
|
||||
Shader::Shader(const char* vertexFile, const char* fragFile)
|
||||
{
|
||||
std::string vertexCode = get_file_contents(vertexFile);
|
||||
std::string fragCode = get_file_contents(fragFile);
|
||||
|
||||
const char* vertexSource = vertexCode.c_str();
|
||||
const char* fragSource = fragCode.c_str();
|
||||
|
||||
unsigned int vertexShader;
|
||||
vertexShader = glCreateShader(GL_VERTEX_SHADER);
|
||||
glShaderSource(vertexShader, 1, &vertexSource, NULL);
|
||||
glCompileShader(vertexShader);
|
||||
|
||||
unsigned int fragmentShader;
|
||||
fragmentShader = glCreateShader(GL_FRAGMENT_SHADER);
|
||||
glShaderSource(fragmentShader, 1, &fragSource, NULL);
|
||||
glCompileShader(fragmentShader);
|
||||
|
||||
ID = glCreateProgram();
|
||||
glAttachShader(ID, vertexShader);
|
||||
glAttachShader(ID, fragmentShader);
|
||||
glLinkProgram(ID);
|
||||
|
||||
glDeleteShader(vertexShader);
|
||||
glDeleteShader(fragmentShader);
|
||||
}
|
||||
|
||||
void Shader::Activate()
|
||||
{
|
||||
glUseProgram(ID);
|
||||
}
|
||||
|
||||
void Shader::Delete()
|
||||
{
|
||||
glDeleteProgram(ID);
|
||||
}
|
||||
|
||||
std::string get_file_contents(const char* filename)
|
||||
{
|
||||
std::ifstream in(filename, std::ios::binary);
|
||||
|
||||
if (in) {
|
||||
std::string contents;
|
||||
in.seekg(0, std::ios::end);
|
||||
contents.resize(in.tellg());
|
||||
in.seekg(0, std::ios::beg);
|
||||
in.read(&contents[0], contents.size());
|
||||
in.close();
|
||||
return contents;
|
||||
}
|
||||
std::cout << "GETTING SHADER FILE CONTENTS FAILED\n";
|
||||
throw errno;
|
||||
}
|
||||
Reference in New Issue
Block a user