umbra/projs/shadow/shadow-renderer/inc/vlkx/render/geometry/SingleRenderer.h
Curle a370f28f14
Implement a Vulkan Renderer module (#2)
* Starting work on the Vlkx renderer

* Fix renderer implementation

* Move GLM to FetchContent
2022-07-19 20:41:44 +02:00

33 lines
693 B
C++

#pragma once
#include <vlkx/render/shader/Pipeline.h>
#include <vlkx/render/shader/GeoBuffers.h>
#include <vlkx/render/shader/Descriptor.h>
#include <vlkx/render/Camera.h>
// Renders a single object.
class SingleRenderer {
public:
void createSingleRenderer(Geo::MeshType type, glm::vec3 posIn, glm::vec3 scaleIn);
void updateUniforms(Camera camera);
void draw();
void destroy();
void setPosition(glm::vec3 newPos) { position = newPos; }
void setRotation(glm::mat4 newRot) { rotation = newRot; }
glm::mat4 getRotation() { return rotation; }
private:
Pipeline pipeline;
GeoBuffers buffers;
Descriptor descriptor;
glm::vec3 position;
glm::vec3 scale;
glm::mat4 rotation;
};