diff options
Diffstat (limited to '')
-rw-r--r-- | engine/xe_engine.hpp | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/engine/xe_engine.hpp b/engine/xe_engine.hpp index d9f79ca..d3862d4 100644 --- a/engine/xe_engine.hpp +++ b/engine/xe_engine.hpp @@ -3,8 +3,9 @@ #include "xe_window.hpp" #include "xe_device.hpp" #include "xe_renderer.hpp" -#include "xe_render_system.hpp" +#include "xe_camera.hpp" #include "xe_descriptors.hpp" +#include <chrono> #include <string> namespace xe { @@ -14,41 +15,25 @@ class XeEngine { public: XeEngine(int width, int height, std::string name); + ~XeEngine() {}; XeEngine(const XeEngine&) = delete; XeEngine operator=(const XeEngine&) = delete; - XeWindow& getWindow() { - return xeWindow; - }; - - XeRenderer& getRenderer() { - return xeRenderer; - }; - - XeCamera& getCamera() { - return xeCamera; - }; + XeWindow& getWindow() {return xeWindow;} + 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); + std::shared_ptr<XeModel> loadModelFromFile(const std::string &filename); + std::shared_ptr<XeModel> loadModelFromData(std::vector<XeModel::Vertex> vertices, std::vector<uint32_t> indices); 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 endFrame() { xeRenderer.endFrame(); } void close() { vkDeviceWaitIdle(xeDevice.device()); } + bool poll(); + float getFrameTime() { return frameTime; } + private: void loadDescriptors(); @@ -58,8 +43,15 @@ class XeEngine { XeRenderer xeRenderer; XeCamera xeCamera; + std::chrono::_V2::system_clock::time_point currentTime; + float frameTime; + + float FOV = 50.f; + std::unique_ptr<XeDescriptorPool> xeDescriptorPool; std::unique_ptr<XeDescriptorSetLayout> xeDescriptorSetLayout; + + friend class XeRenderSystem; }; }
\ No newline at end of file |