3d renderer
This commit is contained in:
61
open_engine/include/open_engine/renderer/renderer3d.hpp
Normal file
61
open_engine/include/open_engine/renderer/renderer3d.hpp
Normal file
@@ -0,0 +1,61 @@
|
||||
#ifndef RENDERER3D_HPP
|
||||
#define RENDERER3D_HPP
|
||||
|
||||
#include "open_engine/renderer/editor_camera.hpp"
|
||||
#include "open_engine/renderer/vertex_array.hpp"
|
||||
#include "open_engine/renderer/camera.hpp"
|
||||
#include "open_engine/renderer/buffer.hpp"
|
||||
#include <cstdint>
|
||||
|
||||
namespace OpenEngine {
|
||||
|
||||
// SHOULD BE MOVED ==================================
|
||||
struct MeshVertex
|
||||
{
|
||||
glm::vec3 position;
|
||||
glm::vec4 color;
|
||||
glm::vec3 normal;
|
||||
glm::vec2 text_coords;
|
||||
uint32_t id = -1;
|
||||
};
|
||||
|
||||
struct Mesh
|
||||
{
|
||||
Ref<VertexArray> vertex_array;
|
||||
Ref<VertexBuffer> vertex_buffer;
|
||||
Ref<IndexBuffer> index_buffer;
|
||||
|
||||
// TODO: Make them a ptr or something
|
||||
std::vector<MeshVertex> vertices;
|
||||
std::vector<uint32_t> indices;
|
||||
};
|
||||
|
||||
Ref<Mesh> CreateMesh(const std::vector<MeshVertex>& vertices,
|
||||
const std::vector<uint32_t>& indices);
|
||||
Ref<Mesh> CreateCube(uint32_t id = -1);
|
||||
// ==================================================
|
||||
|
||||
class Renderer3D
|
||||
{
|
||||
public:
|
||||
static void Init();
|
||||
static void Shutdown();
|
||||
|
||||
static void BeginScene(const Camera& camera, const glm::mat4& transform);
|
||||
static void BeginScene(const EditorCamera& camera);
|
||||
static void EndScene();
|
||||
|
||||
static void DrawMesh(const Ref<Mesh>& mesh, const glm::mat4& transform);
|
||||
|
||||
/*
|
||||
static void DrawCube(const glm::mat4& transform, const glm::vec4& color,
|
||||
int entity_id);
|
||||
static void DrawCube(const glm::mat4& transform, Ref<Texture2D>,
|
||||
int entity_id);
|
||||
static void DrawCube(const glm::mat4& transform, Ref<Texture2D>,
|
||||
const glm::vec4& color, int entity_id);
|
||||
*/
|
||||
};
|
||||
}
|
||||
|
||||
#endif // RENDERER3D_HPP
|
||||
Reference in New Issue
Block a user