SleakEngine
0.1.0
C++23 multi-backend game engine
Toggle main menu visibility
Loading...
Searching...
No Matches
OpenGLTexture.hpp
Go to the documentation of this file.
1
#ifndef OPENGLTEXTURE_HPP_
2
#define OPENGLTEXTURE_HPP_
3
4
#include <
Core/OSDef.hpp
>
5
#include <
Runtime/Texture.hpp
>
6
#include <glad/glad.h>
7
8
namespace
Sleak
{
9
namespace
RenderEngine
{
10
11
/// OpenGL 2D texture, loadable from disk or an in-memory pixel buffer.
12
class
ENGINE_API
OpenGLTexture
:
public
Texture
{
13
public
:
14
OpenGLTexture
();
15
~OpenGLTexture
()
override
;
16
17
/// Uploads raw pixel data as a new GL texture, generating mips.
18
bool
LoadFromMemory
(
const
void
* data, uint32_t
width
, uint32_t
height
,
19
TextureFormat
format)
override
;
20
/// Decodes an image file and uploads it as a new GL texture.
21
bool
LoadFromFile
(
const
std::string& filePath)
override
;
22
23
void
Bind
(uint32_t slot = 0)
const override
;
24
void
Unbind
()
const override
;
25
26
void
SetFilter
(
TextureFilter
filter)
override
;
27
void
SetWrapMode
(
TextureWrapMode
wrapMode)
override
;
28
void
SetLodBias
(
float
bias)
override
;
29
float
GetLodBias
()
const override
{
return
m_lodBias; }
30
31
uint32_t
GetWidth
()
const override
{
return
m_width; }
32
uint32_t
GetHeight
()
const override
{
return
m_height; }
33
TextureFormat
GetFormat
()
const override
{
return
m_format; }
34
TextureType
GetType
()
const override
{
return
TextureType::Texture2D
; }
35
36
uint64_t
GetImGuiTextureID
()
const override
{
return
static_cast<
uint64_t
>
(m_texture); }
37
38
GLuint
GetGLTexture
()
const
{
return
m_texture; }
39
40
private
:
41
GLuint m_texture = 0;
42
uint32_t m_width = 0;
43
uint32_t m_height = 0;
44
TextureFormat
m_format =
TextureFormat::RGBA8
;
45
TextureFilter
m_filter =
TextureFilter::Linear
;
46
float
m_lodBias = 0.0f;
47
};
48
49
}
// namespace RenderEngine
50
}
// namespace Sleak
51
52
#endif
// OPENGLTEXTURE_HPP_
width
int width
Definition
Application.cpp:40
height
int height
Definition
Application.cpp:41
OSDef.hpp
Texture.hpp
Sleak::RenderEngine::OpenGLTexture::SetFilter
void SetFilter(TextureFilter filter) override
Definition
OpenGLTexture.cpp:69
Sleak::RenderEngine::OpenGLTexture::GetLodBias
float GetLodBias() const override
Definition
OpenGLTexture.hpp:29
Sleak::RenderEngine::OpenGLTexture::SetLodBias
void SetLodBias(float bias) override
Definition
OpenGLTexture.cpp:110
Sleak::RenderEngine::OpenGLTexture::GetFormat
TextureFormat GetFormat() const override
Definition
OpenGLTexture.hpp:33
Sleak::RenderEngine::OpenGLTexture::Bind
void Bind(uint32_t slot=0) const override
Definition
OpenGLTexture.cpp:60
Sleak::RenderEngine::OpenGLTexture::LoadFromMemory
bool LoadFromMemory(const void *data, uint32_t width, uint32_t height, TextureFormat format) override
Uploads raw pixel data as a new GL texture, generating mips.
Definition
OpenGLTexture.cpp:17
Sleak::RenderEngine::OpenGLTexture::GetHeight
uint32_t GetHeight() const override
Definition
OpenGLTexture.hpp:32
Sleak::RenderEngine::OpenGLTexture::GetImGuiTextureID
uint64_t GetImGuiTextureID() const override
Definition
OpenGLTexture.hpp:36
Sleak::RenderEngine::OpenGLTexture::GetType
TextureType GetType() const override
Definition
OpenGLTexture.hpp:34
Sleak::RenderEngine::OpenGLTexture::Unbind
void Unbind() const override
Definition
OpenGLTexture.cpp:65
Sleak::RenderEngine::OpenGLTexture::SetWrapMode
void SetWrapMode(TextureWrapMode wrapMode) override
Definition
OpenGLTexture.cpp:117
Sleak::RenderEngine::OpenGLTexture::GetWidth
uint32_t GetWidth() const override
Definition
OpenGLTexture.hpp:31
Sleak::RenderEngine::OpenGLTexture::OpenGLTexture
OpenGLTexture()
Definition
OpenGLTexture.cpp:8
Sleak::RenderEngine::OpenGLTexture::LoadFromFile
bool LoadFromFile(const std::string &filePath) override
Decodes an image file and uploads it as a new GL texture.
Definition
OpenGLTexture.cpp:43
Sleak::RenderEngine::OpenGLTexture::GetGLTexture
GLuint GetGLTexture() const
Definition
OpenGLTexture.hpp:38
Sleak::Texture
Definition
Texture.hpp:78
Sleak::TextureFormat
TextureFormat
Definition
Texture.hpp:10
Sleak::TextureFilter
TextureFilter
Definition
Texture.hpp:28
Sleak::TextureType
TextureType
Definition
Texture.hpp:20
Sleak::TextureWrapMode
TextureWrapMode
Definition
Texture.hpp:43
Sleak::TextureFormat::RGBA8
@ RGBA8
Definition
Texture.hpp:11
Sleak::TextureFilter::Linear
@ Linear
Definition
Texture.hpp:37
Sleak::TextureType::Texture2D
@ Texture2D
Definition
Texture.hpp:21
Sleak::RenderEngine
Backend-facing rendering layer shared by the four graphics backends.
Definition
Application.hpp:60
Sleak
Root namespace for everything the engine exposes.
Definition
Camera.hpp:10
include
private
Graphics
OpenGL
OpenGLTexture.hpp
Generated on
for SleakEngine by
1.18.0