From 40d0db4dc245fee8d7d0f1cdf2dfa56d5f4b4d78 Mon Sep 17 00:00:00 2001 From: Tobias Dahl Date: Mon, 3 Mar 2014 20:22:47 +0100 Subject: [PATCH] WIP --- Escape-the-Dawn/Escape-the-Dawn.vcxproj | 2 + .../Escape-the-Dawn.vcxproj.filters | 6 ++ Escape-the-Dawn/Model.cpp | 67 +++++++++++++++++++ Escape-the-Dawn/Model.h | 41 ++++++++++++ Escape-the-Dawn/Renderer/Renderer.cpp | 26 ++++++- Escape-the-Dawn/Renderer/Renderer.h | 6 +- 6 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 Escape-the-Dawn/Model.cpp create mode 100644 Escape-the-Dawn/Model.h diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj b/Escape-the-Dawn/Escape-the-Dawn.vcxproj index 8f1c0fb..419f9dc 100644 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj +++ b/Escape-the-Dawn/Escape-the-Dawn.vcxproj @@ -89,6 +89,7 @@ + @@ -105,6 +106,7 @@ + diff --git a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters b/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters index 4eb8949..07c9246 100644 --- a/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters +++ b/Escape-the-Dawn/Escape-the-Dawn.vcxproj.filters @@ -60,6 +60,9 @@ Source Files\Renderer + + Source Files + @@ -107,6 +110,9 @@ Header Files\Renderer + + Header Files + diff --git a/Escape-the-Dawn/Model.cpp b/Escape-the-Dawn/Model.cpp new file mode 100644 index 0000000..e746ebf --- /dev/null +++ b/Escape-the-Dawn/Model.cpp @@ -0,0 +1,67 @@ +#include "Model.h" + + +Model::Model() +{ + temp_CreateModelShit(); + CreateBuffers(); +} + + +void Model::temp_CreateModelShit() +{ + Vertices.push_back(0.0f); + Vertices.push_back(0.0f); + Vertices.push_back(2.0f); + + Vertices.push_back(0.0f); + Vertices.push_back(1.0f); + Vertices.push_back(2.0f); + + Vertices.push_back(1.0f); + Vertices.push_back(0.0f); + Vertices.push_back(2.0f); + + Normals.push_back(); + Normals.push_back(); + Normals.push_back(); +} + + +void Model::CreateBuffers( std::vector _Vertices, std::vector _Normals, std::vector _TextureCoords ) +{ + glGenBuffers(1, &VertBuffer); + glBindBuffer(GL_ARRAY_BUFFER, VertBuffer); + glBufferData(GL_ARRAY_BUFFER, Vertices.size()*sizeof(float), Vertices.data, GL_STATIC_DRAW); + GLERROR("GLEW: BufferFail1"); + + glGenBuffers(1, &NormalBuffer); + glBindBuffer(GL_ARRAY_BUFFER, NormalBuffer); + glBufferData(GL_ARRAY_BUFFER, Normals.size()*sizeof(float), Normals.data, GL_STATIC_DRAW); + GLERROR("GLEW: BufferFail2"); + + glGenBuffers(1, &TextureCoordBuffer); + glBindBuffer(GL_ARRAY_BUFFER, TextureCoordBuffer); + glBufferData(GL_ARRAY_BUFFER, TextureCoords.size()*sizeof(float), TextureCoords.data, GL_STATIC_DRAW); + GLERROR("GLEW: BufferFail3"); + + glGenVertexArrays(1, &VAO); + glBindVertexArray(VAO); + GLERROR("GLEW: BufferFail4"); + + glBindBuffer(GL_ARRAY_BUFFER, VertBuffer); + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0); + GLERROR("GLEW: BufferFail5"); + + glBindBuffer(GL_ARRAY_BUFFER, NormalBuffer); + glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 0, 0); + + glBindBuffer(GL_ARRAY_BUFFER, TextureCoordBuffer); + glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 0, 0); + + glEnableVertexAttribArray(0); + glEnableVertexAttribArray(1); + glEnableVertexAttribArray(2); + GLERROR("GLEW: BufferFail5"); +} + diff --git a/Escape-the-Dawn/Model.h b/Escape-the-Dawn/Model.h new file mode 100644 index 0000000..9b1e51e --- /dev/null +++ b/Escape-the-Dawn/Model.h @@ -0,0 +1,41 @@ +#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" +#include + +class Model +{ +public: + glm::vec3 Position; + std::vector Vertices; + std::vector Normals; + std::vector TextureCoords; + + + + GLuint VertBuffer; + GLuint NormalBuffer; + GLuint TextureCoordBuffer; + GLuint VAO; + + Model(); + + void temp_CreateModelShit(); + void CreateBuffers(std::vector, std::vector, std::vector); + +}; \ No newline at end of file diff --git a/Escape-the-Dawn/Renderer/Renderer.cpp b/Escape-the-Dawn/Renderer/Renderer.cpp index c4134b9..cfed691 100644 --- a/Escape-the-Dawn/Renderer/Renderer.cpp +++ b/Escape-the-Dawn/Renderer/Renderer.cpp @@ -5,6 +5,29 @@ Renderer::Renderer() } +void Renderer::Draw() +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + glClearColor(1.0f, 1.0f, 0.0f, 1.0f); + + glUseProgram(shaderProgram); +} + +void Renderer::DrawText() +{ + //DrawShitInTextForm +} + +void Renderer::AddTextToDraw() +{ + //Add to draw shit vector +} + +void Renderer::AddObjectToDraw() +{ + +} + //Fixa med shaders, lägga in alla verts osv. @@ -52,4 +75,5 @@ GLuint Renderer::CompileShader(GLenum shaderType, std::string fileName) return shader; -} \ No newline at end of file +} + diff --git a/Escape-the-Dawn/Renderer/Renderer.h b/Escape-the-Dawn/Renderer/Renderer.h index f65b597..7fb3246 100644 --- a/Escape-the-Dawn/Renderer/Renderer.h +++ b/Escape-the-Dawn/Renderer/Renderer.h @@ -24,12 +24,16 @@ public: GLuint shaderProgram; GLuint VAO; + std::vector> Vertices; + std::vector> Normals; + std::vector> TextureCoords; + Renderer(); void Draw(); void DrawText(); - void AddObjectToDraw(); + void AddObjectToDraw(std::vector, std::vector, std::vector); void AddTextToDraw(); GLuint CompileShader(GLenum, std::string);