blob: bb94cb9c7217806bbe2a5abc2f5ffe12fc34ee92 (
plain)
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
|
#pragma once
#include <deimos/core/base.h>
#include <deimos/core/status.h>
namespace deimos
{
struct RenderSwapchain{};
class IRenderBackend
{
public:
IRenderBackend() = default;
deimos_NO_COPY_MOVE(IRenderBackend);
virtual ~IRenderBackend() = default;
virtual void BeginFrame() = 0;
virtual void EndFrame() = 0;
virtual StatusOr<gsl::owner<RenderSwapchain*>> CreateSwapchain() = 0;
virtual void DestroySwapchain(gsl::owner<RenderSwapchain*>) = 0;
};
} // namespace deimos
|