LkEngine 0.1.2
 
Loading...
Searching...
No Matches
OpenGLImage.h
1/******************************************************************
2 * LOpenGLImage
3 *
4 *******************************************************************/
5#pragma once
6
7#include "LkEngine/Renderer/Image.h"
8
9
10namespace LkEngine {
11
17 class LOpenGLImage : public LImage
18 {
19 public:
20 LOpenGLImage(const FImageSpecification& InSpecification, FBuffer&& InBuffer);
21 LOpenGLImage(const FImageSpecification& InSpecification, void* InData);
22 LOpenGLImage() = delete;
24
25 virtual void Invalidate() override;
26 virtual void RT_Invalidate() override;
27
28 virtual void Resize(const uint32_t NewWidth, const uint32_t NewHeight) override;
29 virtual void SetData(const void* data) override;
30
31 virtual LRendererID& GetRendererID() override { return m_RendererID; }
32 virtual LRendererID GetRendererID() const override { return m_RendererID; }
33
34 virtual FBuffer GetBuffer() const override { return m_ImageData; }
35 virtual FBuffer& GetBuffer() override { return m_ImageData; }
36 virtual uint32_t GetWidth() const override { return Specification.Width; }
37 virtual uint32_t GetHeight() const override { return Specification.Height; }
38
39 const FImageSpecification& GetSpecification() const { return Specification; }
40
41 private:
42 void Release() override;
43 void AllocateMemory(uint64_t size) override;
44
45 private:
46 LRendererID m_RendererID = 0;
47 FBuffer m_ImageData{};
48
49 FImageSpecification Specification{};
50 std::string m_FilePath{};
51 glm::vec4 m_TintColor = { 0.0f, 0.0f, 0.0f, 1.0f };
52
54 };
55
56 /********************************************************************************
57 ********************************************************************************/
58
64 class LOpenGLImage2D : public LImage2D
65 {
66 public:
67 LOpenGLImage2D(const FImageSpecification& InSpecification, FBuffer&& InBuffer);
68 LOpenGLImage2D(const FImageSpecification& InSpecification, void* InData);
69 LOpenGLImage2D() = delete;
71
72 virtual void Invalidate() override;
73 virtual void RT_Invalidate() override;
74
75 virtual void Resize(const uint32_t NewWidth, const uint32_t NewHeight) override;
76 virtual void SetData(const void* InData) override;
77
78 FORCEINLINE virtual LRendererID& GetRendererID() override { return m_RendererID; }
79 FORCEINLINE virtual LRendererID GetRendererID() const override { return m_RendererID; }
80
81 FORCEINLINE virtual FBuffer GetBuffer() const override { return m_ImageData; }
82 FORCEINLINE virtual FBuffer& GetBuffer() override { return m_ImageData; }
83 FORCEINLINE virtual uint32_t GetWidth() const override { return Specification.Width; }
84 FORCEINLINE virtual uint32_t GetHeight() const override { return Specification.Height; }
85
86 FORCEINLINE virtual const FImageSpecification& GetSpecification() const override
87 {
88 return Specification;
89 }
90
91 private:
92 virtual void Release() override;
93 virtual void AllocateMemory(uint64_t size) override;
94
95 private:
96 LRendererID m_RendererID = 0;
97 FImageSpecification Specification{};
98
99 FBuffer m_ImageData{};
100 std::filesystem::path m_FilePath{};
101
102 glm::vec4 m_TintColor = { 0.0f, 0.0f, 0.0f, 1.0f };
103
105 };
106
107 #if 0
108 namespace LOpenGL
109 {
110 void ApplyTextureFilter(ETextureFilter TextureFilter, bool bUseMipmap = true);
111 void ApplyTextureWrap(ETextureWrap TextureWrap);
112 }
113 #endif
114
115}
Definition Image.h:148
Definition Image.h:114
Definition OpenGLImage.h:65
Definition OpenGLImage.h:18
#define LCLASS(Class)
Definition CoreMacros.h:226
uint32_t LRendererID
Definition CoreTypes.h:30
Definition Asset.h:11
Definition Buffer.h:9
Definition Image.h:70
Definition LkOpenGL.h:165