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