summaryrefslogtreecommitdiff
path: root/engine/xe_engine.hpp
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-09-19 21:28:41 -0400
committertylermurphy534 <tylermurphy534@gmail.com>2022-09-19 21:28:41 -0400
commit8cc0b081ef0188f850814b2af2cb077583eb9f2d (patch)
treef90ba2da50c91f596672730706440149fecb2393 /engine/xe_engine.hpp
parenttemp patch (diff)
downloadminecraftvulkan-8cc0b081ef0188f850814b2af2cb077583eb9f2d.tar.gz
minecraftvulkan-8cc0b081ef0188f850814b2af2cb077583eb9f2d.tar.bz2
minecraftvulkan-8cc0b081ef0188f850814b2af2cb077583eb9f2d.zip
finish refactor
Diffstat (limited to '')
-rw-r--r--engine/xe_engine.hpp44
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