summaryrefslogtreecommitdiff
path: root/deimos/core/os.h
diff options
context:
space:
mode:
Diffstat (limited to 'deimos/core/os.h')
-rw-r--r--deimos/core/os.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/deimos/core/os.h b/deimos/core/os.h
index 271ecfb..ecbe3cd 100644
--- a/deimos/core/os.h
+++ b/deimos/core/os.h
@@ -2,6 +2,7 @@
#include "deimos/core/base.h"
#include "deimos/core/id_name.h"
+#include "deimos/core/status.h"
#include "deimos/core/io.h"
namespace deimos
@@ -49,6 +50,18 @@ public:
virtual void Commit(void* ptr, int64_t size) = 0;
};
+struct OsWindowHandle;
+
+class OsWindowApi
+{
+public:
+ OsWindowApi() = default;
+ deimos_NO_COPY_MOVE(OsWindowApi);
+ virtual ~OsWindowApi() = default;
+
+ virtual StatusOr<gsl::owner<OsWindowHandle*>> Create(gsl::czstring title, int32_t width, int32_t height) = 0;
+};
+
class OsApi
{
public:
@@ -57,6 +70,7 @@ public:
OsConsoleApi* console{};
OsDllApi* dll{};
OsVirtualMemoryApi* virtual_memory{};
+ OsWindowApi* window{};
};
class OsConsoleWriter : public IWriter