Working on basic rendering #4
* Added a basic material abstraction * Started implementation of RenderTarget (such as render textures)
This commit is contained in:
@ -1,18 +1,20 @@
|
||||
#pragma once
|
||||
#include "glm/glm.hpp"
|
||||
#include "graphics/Shader.h"
|
||||
#include "graphics/Window.h"
|
||||
#include "graphics/Camera.h"
|
||||
#include "graphics/Renderable.h"
|
||||
#include "spdlog/spdlog.h"
|
||||
|
||||
#include "Input/InputManager.h"
|
||||
#include "Graphics/Renderer.h"
|
||||
#include "Graphics/GUI/GUIManager.h"
|
||||
#include "Scene.h"
|
||||
#include "PerfCounter.h"
|
||||
|
||||
extern void Start();
|
||||
extern void Update();
|
||||
extern void ImmediateGraphicsDraw();
|
||||
extern void Stop();
|
||||
#pragma once
|
||||
#include "glm/glm.hpp"
|
||||
#include "graphics/Shader.h"
|
||||
#include "graphics/Window.h"
|
||||
#include "graphics/Camera.h"
|
||||
#include "graphics/Renderable.h"
|
||||
#include "Graphics/Material.h"
|
||||
#include "spdlog/spdlog.h"
|
||||
|
||||
#include "Input/InputManager.h"
|
||||
#include "Graphics/Renderer.h"
|
||||
#include "Graphics/GUI/GUIManager.h"
|
||||
#include "Scene.h"
|
||||
#include "PerfCounter.h"
|
||||
|
||||
|
||||
extern void Start();
|
||||
extern void Update();
|
||||
extern void ImmediateGraphicsDraw();
|
||||
extern void Stop();
|
||||
|
19
BarinkEngine/Include/Graphics/Material.h
Normal file
19
BarinkEngine/Include/Graphics/Material.h
Normal file
@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
#include <glm/glm.hpp>
|
||||
#include <string>
|
||||
#include "Shader.h"
|
||||
|
||||
class Material {
|
||||
public:
|
||||
Material(const Shader& shader);
|
||||
|
||||
void Apply();
|
||||
|
||||
glm::vec3 Color;
|
||||
|
||||
|
||||
private:
|
||||
const Shader& shader;
|
||||
|
||||
|
||||
};
|
30
BarinkEngine/Include/Graphics/RenderSurface.h
Normal file
30
BarinkEngine/Include/Graphics/RenderSurface.h
Normal file
@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
#include "BarinkEngine.h"
|
||||
#include <vector>;
|
||||
class RenderSurface
|
||||
{
|
||||
public:
|
||||
RenderSurface();
|
||||
~RenderSurface();
|
||||
|
||||
void Draw();
|
||||
|
||||
private:
|
||||
// would normally be a material
|
||||
// however rendersurface is special and
|
||||
// thus does not contain a material
|
||||
Shader* shader;
|
||||
|
||||
// Basically a mesh
|
||||
std::vector<glm::vec3> verts;
|
||||
std::vector<unsigned int > indices;
|
||||
|
||||
|
||||
Buffer vertexBuffer;
|
||||
Buffer elementBuffer;
|
||||
|
||||
VertexArray VAO;
|
||||
|
||||
|
||||
|
||||
};
|
@ -1,21 +1,33 @@
|
||||
#pragma once
|
||||
#include <vector>
|
||||
#include "Mesh.h"
|
||||
#include "Buffer.h"
|
||||
#include "VertexArray.h"
|
||||
#include "Scene.h"
|
||||
|
||||
class Renderable : public SceneNode {
|
||||
public:
|
||||
Buffer vertexBuffer;
|
||||
Buffer elementBuffer;
|
||||
VertexArray VAO;
|
||||
~Renderable();
|
||||
|
||||
static Renderable* Load();
|
||||
void Draw();
|
||||
|
||||
private:
|
||||
std::vector<BarinkEngine::Mesh> meshes;
|
||||
Renderable();
|
||||
#pragma once
|
||||
#include <vector>
|
||||
#include "Mesh.h"
|
||||
#include "Buffer.h"
|
||||
#include "Material.h"
|
||||
#include "VertexArray.h"
|
||||
#include "Scene.h"
|
||||
|
||||
|
||||
class Renderable : public SceneNode {
|
||||
public:
|
||||
/*
|
||||
* NOTE: Should combine into a Mesh!!
|
||||
*/
|
||||
Buffer vertexBuffer;
|
||||
Buffer elementBuffer;
|
||||
VertexArray VAO;
|
||||
|
||||
|
||||
Material* material;
|
||||
|
||||
|
||||
Shader* shader;
|
||||
|
||||
~Renderable();
|
||||
|
||||
static Renderable* Load();
|
||||
void Draw();
|
||||
|
||||
private:
|
||||
std::vector<BarinkEngine::Mesh> meshes;
|
||||
Renderable();
|
||||
};
|
@ -15,12 +15,12 @@ class Shader {
|
||||
public:
|
||||
Shader(const std::string vertexShaderPath, const std::string fragmentShaderPath);
|
||||
void Use();
|
||||
void setUniformMat4(std::string uniformName, glm::mat4 matrix4);
|
||||
void setUniformVec4(std::string uniformName, glm::vec4 vector4);
|
||||
void setUniformVec3(std::string uniformName, glm::vec3 vector3);
|
||||
void setUniformVec2(std::string uniformName, glm::vec2 vector2);
|
||||
void setUniformFloat(std::string uniformName, float value);
|
||||
void setUniformInt(std::string uniformName, int value);
|
||||
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;
|
||||
void setUniformVec2(std::string uniformName, glm::vec2 vector2)const;
|
||||
void setUniformFloat(std::string uniformName, float value)const;
|
||||
void setUniformInt(std::string uniformName, int value) const ;
|
||||
|
||||
|
||||
};
|
Reference in New Issue
Block a user