Moving to a single renderer instance system

This commit is contained in:
2022-10-08 15:34:02 +02:00
parent 3974889f7e
commit b03b82272f
19 changed files with 201 additions and 138 deletions

View File

@ -12,6 +12,7 @@
#include <string>
#include "Scene/SceneNodeTypes.h"
void ProcessVertices(aiMesh* mesh, std::vector<BarinkEngine::Vertex>& out_vertices);
void ProcessIndices(aiMesh* mesh, std::vector<unsigned int>& out_indices);
@ -20,7 +21,7 @@ namespace BarinkEngine {
public:
SceneObject* Import(const std::string path);
BarinkEngine::SceneObject* Import(const std::string path);
private:

View File

@ -5,6 +5,7 @@
#include "graphics/Texture.h"
#include "graphics/Camera.h"
#include "graphics/Renderable.h"
#include "Graphics/Renderer.h"
#include "Graphics/Material.h"
#include "spdlog/spdlog.h"

View File

@ -1,5 +1,5 @@
#pragma once
#include <string>
#include <string>
struct Event
{

View File

@ -0,0 +1,30 @@
#pragma once
#include "VertexArray.h"
#include "Buffer.h"
#include "Mesh.h"
#include "Material.h"
namespace BarinkEngine {
class GPU_Bucket {
public:
GPU_Bucket();
~GPU_Bucket();
void Upload(const Mesh& renderable);
GpuBuffer vertexBuffer;
GpuBuffer elementBuffer;
VertexArray vertexarray;
const Mesh* mesh;
const Material* material;
private :
unsigned int uv_id;
};
};

View File

@ -7,7 +7,7 @@ class Material {
public:
Material(const Shader& shader);
void Apply();
void Apply()const;
glm::vec3 Color;

View File

@ -1,26 +1,12 @@
#pragma once
#include <vector>
#include <glm/glm.hpp>
#include "VertexArray.h"
#include "Buffer.h"
#include "Vertex.h"
namespace BarinkEngine{
struct Vertex {
glm::vec3 vertices;
glm::vec2 uv;
};
class Mesh {
public:
namespace BarinkEngine {
struct Mesh {
std::vector<Vertex> vertices;
std::vector<unsigned int> elements;
private:
GpuBuffer vertexBuffer;
GpuBuffer elementBuffer;
VertexArray VAO;
unsigned int UV_id;
};
}
}

View File

@ -1,23 +1,14 @@
#pragma once
#include <vector>
#include "Mesh.h"
#include "Material.h"
#include "Texture.h"
#include "Scene.h"
namespace BarinkEngine {
class Renderable {
public:
Mesh mesh;
struct Renderable {
BarinkEngine::Mesh* mesh;
Material* material;
Texture* texture;
Shader* shader;
Renderable();
~Renderable();
};
}

View File

@ -1,8 +1,16 @@
#pragma once
#include "Graphics/Renderable.h"
#include <vector>
#include <glm/gtc/matrix_transform.hpp>
#include "glad/glad.h"
#include "GLFW/glfw3.h"
#include "PerfCounter.h"
#include "Graphics/Camera.h"
#include "Graphics/Renderable.h"
#include "Graphics/GPUBucket.h"
namespace BarinkEngine {
class Renderer {
@ -15,7 +23,7 @@ namespace BarinkEngine {
void Submit(Renderable* model);
private:
std::vector<Renderable*> models;
std::vector<GPU_Bucket*> models;
};
}

View File

@ -14,7 +14,7 @@ class Shader {
char* readFile (const char* filePath);
public:
Shader(const std::string vertexShaderPath, const std::string fragmentShaderPath);
void Use();
void Use() const;
void setUniformMat4(std::string uniformName, glm::mat4 matrix4)const;
void setUniformVec4(std::string uniformName, glm::vec4 vector4)const;
void setUniformVec3(std::string uniformName, glm::vec3 vector3)const;

View File

@ -0,0 +1,9 @@
#pragma once
#include <glm/glm.hpp>
namespace BarinkEngine {
struct Vertex {
glm::vec3 vertices;
glm::vec2 uv;
};
}