TerraForge3D  2.3.1
3D Terrain And Landscape Generator
Texture2D.h
1#pragma once
2
3#include <string>
4#include <glad/glad.h>
5
6
8{
9public:
10 Texture2D(uint32_t width, uint32_t height);
11 Texture2D(const std::string path, bool preserveData = true, bool readAlpha = false);
12 virtual ~Texture2D();
13
14 virtual uint32_t GetWidth() const
15 {
16 return m_Width;
17 }
18 virtual uint32_t GetHeight() const
19 {
20 return m_Height;
21 }
22 virtual uint32_t GetRendererID() const
23 {
24 return m_RendererID;
25 }
26 virtual std::string GetPath() const
27 {
28 return m_Path;
29 }
30
31 void Resize(int width, int height, bool resetOpenGL = true);
32
33 virtual void SetData(void *data, uint32_t size, bool c = false);
34 virtual void DeleteData();
35
36 virtual void Bind(uint32_t slot = 0) const ;
37 unsigned char *GetData();
38
39 virtual bool IsLoaded() const
40 {
41 return m_IsLoaded;
42 }
43
44private:
45 unsigned char *m_Data = nullptr;
46 std::string m_Path;
47 bool m_IsLoaded = false;
48 uint32_t m_Width, m_Height;
49 uint32_t m_RendererID;
50 GLenum m_InternalFormat, m_DataFormat;
51};
52