From 68f4be5822527eda07a44321b0e13d07522a34c1 Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Mon, 3 Mar 2014 16:26:58 +0100 Subject: [PATCH] Started working on Renderer --- Escape-the-Dawn/Escape-the-Dawn.vcxproj | 6 ++ .../Escape-the-Dawn.vcxproj.filters | 23 +++++++ Escape-the-Dawn/Fragment.glsl | 0 Escape-the-Dawn/Renderer.cpp | 68 +++++++++++++++++++ Escape-the-Dawn/Renderer.h | 38 +++++++++++ Escape-the-Dawn/Vertex.glsl | 0 6 files changed, 135 insertions(+) create mode 100644 Escape-the-Dawn/Fragment.glsl create mode 100644 Escape-the-Dawn/Renderer.cpp create mode 100644 Escape-the-Dawn/Renderer.h create mode 100644 Escape-the-Dawn/Vertex.glsl diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj b/Escape-the-Dawn/Escape-the-Dawn.vcxproj index edac37c..25fbc2c 100644 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj +++ b/Escape-the-Dawn/Escape-the-Dawn.vcxproj @@ -89,6 +89,7 @@ + @@ -97,8 +98,13 @@ + + + + + diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters b/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters index c3e5060..cf68ad5 100644 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters +++ b/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters @@ -16,11 +16,23 @@ {9af04489-86da-41b7-aaba-12d5b6653660} + + {7abbf0e9-8bda-475e-bf00-a347f396b892} + + + {091f6f01-79ab-4a49-9639-c7185e89c84e} + + + {26dccea6-3d9c-4d5f-9db2-98621e35ffcb} + Source Files + + Source Files\Renderer + @@ -44,5 +56,16 @@ Header Files + + Header Files\Renderer + + + + + Shaders + + + Shaders + \ No newline at end of file diff --git a/Escape-the-Dawn/Fragment.glsl b/Escape-the-Dawn/Fragment.glsl new file mode 100644 index 0000000..e69de29 diff --git a/Escape-the-Dawn/Renderer.cpp b/Escape-the-Dawn/Renderer.cpp new file mode 100644 index 0000000..35198d9 --- /dev/null +++ b/Escape-the-Dawn/Renderer.cpp @@ -0,0 +1,68 @@ +#include "Renderer.h" + +Renderer::Renderer() +{ + +} + +void Renderer::PushVertices(std::vector _Verts) +{ + Vertices.push_back(_Verts); +} +void Renderer::PushNormals(std::vector _Normals) +{ + Normals.push_back(_Normals); +} +void Renderer::PushTextureCoords(std::vector _Textcords) +{ + TextureCoords.push_back(_Textcords); +} + +//Fixa med shaders, lägga in alla verts osv. + + +GLuint Renderer::CompileShader(GLenum shaderType, std::string fileName) +{ + std::string shaderFile; + std::ifstream in(fileName, std::ios::in); + + if(!in) + { + LOG_ERROR("Error: Failed to open shader file %s", fileName); + return 0; + } + in.seekg(0, std::ios::end); + shaderFile.resize((int)in.tellg()); + in.seekg(0, std::ios::beg); + in.read(&shaderFile[0], shaderFile.size()); + in.close(); + + GLuint shader = glCreateShader(shaderType); //GL_VERTEX_SHADER, GL_FRAGMENT_SHADER + if(GLERROR("glCreateShader")) + return 0; + + const GLchar* shaderFiles = shaderFile.c_str(); + const GLint length = shaderFile.length(); + glShaderSource(shader, 1, &shaderFiles, &length); + if(GLERROR("glShaderSource")) + return 0; + + glCompileShader(shader); + GLint compileStatus; + glGetShaderiv(shader, GL_COMPILE_STATUS, &compileStatus); + if(compileStatus != GL_TRUE) + { + GLsizei infoLogLength; + glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLogLength); + GLchar* infolog = new GLchar[infoLogLength]; + glGetShaderInfoLog(shader, infoLogLength, &infoLogLength, infolog); + std::cerr << infolog << std::endl; + delete[] infolog; + } + + if(GLERROR("glCompileShader")) + return 0; + + return shader; + +} \ No newline at end of file diff --git a/Escape-the-Dawn/Renderer.h b/Escape-the-Dawn/Renderer.h new file mode 100644 index 0000000..8cd7cad --- /dev/null +++ b/Escape-the-Dawn/Renderer.h @@ -0,0 +1,38 @@ +#include +#include +#include +#include +#include + +#define _CRT_SECURE_NO_WARNINGS +#include +#define GLFW_INCLUDE_GLU +#include +#include +#define GLM_FORCE_RADIANS +#include +#include +#include +#include + +#include "glerror.h" + + +class Renderer +{ +public: + GLuint shaderProgram; + GLuint VAO; + + Renderer(); + + std::vector> Vertices; + std::vector> Normals; + std::vector> TextureCoords; + + void PushVertices(std::vector); + void PushNormals(std::vector); + void PushTextureCoords(std::vector); + GLuint CompileShader(GLenum, std::string); + +}; \ No newline at end of file diff --git a/Escape-the-Dawn/Vertex.glsl b/Escape-the-Dawn/Vertex.glsl new file mode 100644 index 0000000..e69de29