LkEngine 0.1.2
 
Loading...
Searching...
No Matches
OpenGLContext.h
1#pragma once
2
3#include "LkEngine/Renderer/RenderContext.h"
4
5
6namespace LkEngine {
7
8 class LWindow;
9 class OpenGLSwapChain;
10
12 {
13 public:
14 LOpenGLContext(LWindow* InWindow);
15 ~LOpenGLContext() = default;
16
17 virtual void Initialize(const ESourceBlendFunction InSourceBlendFunction,
18 const EDestinationBlendFunction InDestinationBlendFunction) override;
19 virtual void Destroy() override;
20
21 FORCEINLINE virtual GLFWwindow* GetGlfwWindow() override
22 {
23 LK_CORE_ASSERT(m_GlfwWindow, "GlfwWindow is nullptr");
24 return m_GlfwWindow;
25 }
26
27 virtual void SetViewport(const glm::vec2& pos, const glm::vec2& size) override;
28 virtual void UpdateResolution(const uint16_t width, const uint16_t height) override;
29
30 virtual bool GetDepthEnabled() const override { return bDepthEnabled; }
31 virtual void SetDepthEnabled(const bool InEnabled) override;
32 virtual void SetDepthFunction(const EDepthFunction depthFunc) override;
33
34 virtual bool GetBlendingEnabled() const override { return bBlendingEnabled; }
35 virtual void SetBlendingEnabled(const bool InEnabled) override;
36 virtual void SetBlendFunction(const ESourceBlendFunction InSourceBlendFunction,
37 const EDestinationBlendFunction InDestinationBlendFunction) override;
38
39 virtual void SetSourceBlendFunction(const ESourceBlendFunction InSourceBlendFunction) override;
40 virtual void SetDestinationBlendFunction(const EDestinationBlendFunction InDestinationBlendFunction) override;
41
42 FORCEINLINE virtual ESourceBlendFunction GetSourceBlendFunction() const override
43 {
44 return BlendFunction.Source;
45 }
46
47 FORCEINLINE virtual EDestinationBlendFunction GetDestinationBlendFunction() const override
48 {
49 return BlendFunction.Destination;
50 }
51
52 private:
53 std::string m_GlslVersion{};
54
55 bool bDepthEnabled = true;
56 bool bBlendingEnabled = true;
57
58 FBlendFunction BlendFunction{};
59 EDepthFunction DepthFunction{};
60
61 LWindow* Window{};
62 GLFWwindow* m_GlfwWindow{};
63
65
66 friend class Editor;
67
69 };
70
71}
virtual void Initialize()
Initialize object.
Definition Object.cpp:15
Definition OpenGLContext.h:12
virtual void Destroy() override
Destroy object, releasing all resources.
Definition OpenGLContext.cpp:24
Definition RenderContext.h:28
Definition Window.h:88
Definition ObjectPtr.h:102
#define LCLASS(Class)
Definition CoreMacros.h:226
Definition Asset.h:11
Definition BlendingSpecification.h:37