summaryrefslogtreecommitdiff
path: root/engine/xe_engine.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'engine/xe_engine.hpp')
-rw-r--r--engine/xe_engine.hpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/engine/xe_engine.hpp b/engine/xe_engine.hpp
index 7beb962..d9f79ca 100644
--- a/engine/xe_engine.hpp
+++ b/engine/xe_engine.hpp
@@ -6,6 +6,7 @@
#include "xe_render_system.hpp"
#include "xe_descriptors.hpp"
+#include <string>
namespace xe {
class XeEngine {
@@ -26,8 +27,28 @@ class XeEngine {
return xeRenderer;
};
+ XeCamera& getCamera() {
+ return xeCamera;
+ };
+
std::unique_ptr<XeRenderSystem> createRenderSystem(const std::string &vert, const std::string &frag, uint32_t pushCunstantDataSize, uint32_t uniformBufferDataSize);
+ std::shared_ptr<XeModel> createModel(const std::string &filename);
+
+ bool beginFrame() { return xeRenderer.beginFrame(); }
+
+ void endFrame() { return xeRenderer.endFrame(); }
+
+ void render(
+ XeRenderSystem& xeRenderSystem,
+ std::vector<XeGameObject>& gameObjects,
+ void* pushConstantData,
+ uint32_t pushConstantSize,
+ void* uniformBufferData,
+ uint32_t uniformBufferSize);
+
+ void close() { vkDeviceWaitIdle(xeDevice.device()); }
+
private:
void loadDescriptors();
@@ -35,6 +56,7 @@ class XeEngine {
XeWindow xeWindow;
XeDevice xeDevice;
XeRenderer xeRenderer;
+ XeCamera xeCamera;
std::unique_ptr<XeDescriptorPool> xeDescriptorPool;
std::unique_ptr<XeDescriptorSetLayout> xeDescriptorSetLayout;