LkEngine 0.1.2
 
Loading...
Searching...
No Matches
SwapChain.h
1#pragma once
2
4
6#include "LkEngine/Core/LObject/ObjectPtr.h"
7
8#include <GLFW/glfw3.h>
9
10namespace LkEngine {
11
12 class LSwapChain : public LObject
13 {
14 public:
15 virtual ~LSwapChain() = default;
16
17 virtual void Initialize() = 0;
18 virtual void InitializeSurface(GLFWwindow* GlfwWindowHandle) = 0;
19 virtual void Destroy() = 0;
20
21 virtual void OnResize(const uint32_t NewWidth, const uint32_t NewHeight) = 0;
22
23 virtual void BeginFrame() = 0;
24 virtual void Present() = 0;
25
26 virtual uint32_t GetWidth() const = 0;
27 virtual uint32_t GetHeight() const = 0;
28
29 virtual uint32_t GetCurrentBufferIndex() const = 0;
30
31 static TObjectPtr<LSwapChain> Create(uint32_t* InWidth, uint32_t* InHeight, const bool InVSync);
32
33 private:
35 };
36
37}
Core header.
LObject implementation.
Definition Object.h:46
Definition SwapChain.h:13
virtual void Destroy()=0
Destroy object, releasing all resources.
virtual void Initialize()=0
Initialize object.
Definition ObjectPtr.h:102
#define LCLASS(Class)
Definition CoreMacros.h:226
Definition Asset.h:11