-
Notifications
You must be signed in to change notification settings - Fork 0
/
Nova.h
executable file
·39 lines (28 loc) · 997 Bytes
/
Nova.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#pragma once
#include "./Core/core.h"
#include "./Core/config.h"
#include <string>
#include <future>
// The goal of this layer of abstraction is to create a friendly user implementation for creating a graphics engine, for future projects.
// TODO: Cross Platform Support
class Nova {
public:
bool initialized = false;
Nova(NovaConfig);
~Nova();
// TODO: Determine Default Initializers
void illuminate();
//void illuminate(fnManifest);
private:
NovaConfig _config;
bool _suspended = false;
struct SDL_Window* _window = nullptr;
NovaCore* _architect;
VkDebugUtilsMessengerEXT _debug_messenger;
void _initFramework();
void _initSwapChain(std::promise<void>&, std::future<void>&, std::promise<void>&);
void _initPipeline(std::future<void>&, std::promise<void>&);
void _initBuffers();
void _initSyncStructures();
void _resizeWindow();
};