diff options
| author | hachem <im@hachem.wtf> | 2025-08-15 03:18:29 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2025-08-15 03:18:29 +0200 |
| commit | 4172869e54093eee6e1595ebe0fa55c9fe98aef7 (patch) | |
| tree | 2004c518688e6db529e437fe3f0120ad0fcc1dd9 /src/Rendering/TextureManager.cpp | |
| parent | bc2d88c799cb3913a5defe4ea9ddea9c56814349 (diff) | |
[help]: Complete first geodesic 3d raytracing
Diffstat (limited to 'src/Rendering/TextureManager.cpp')
| -rw-r--r-- | src/Rendering/TextureManager.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/Rendering/TextureManager.cpp b/src/Rendering/TextureManager.cpp new file mode 100644 index 0000000..9110558 --- /dev/null +++ b/src/Rendering/TextureManager.cpp @@ -0,0 +1,34 @@ +#include "TextureManager.h" +#include "Platform/OpenGL/OpenGLTexture.h" +#include "Platform/OpenGL/OpenGLRendererAPI.h" +#include <glad/glad.h> + +namespace Donut +{ + Ref<Texture2D> TextureManager::CreateTexture(uint32_t width, uint32_t height) + { + return CreateRef<OpenGLTexture2D>(width, height); + } + + void TextureManager::BindTexture(uint32_t textureID, uint32_t slot) + { + RenderCommand::BindTexture(textureID, slot); + } + + void TextureManager::BindImageTexture(uint32_t textureID, uint32_t slot, bool readOnly) + { + RenderCommand::BindImageTexture(textureID, slot, readOnly); + } + + void TextureManager::SetTextureData(uint32_t textureID, void* data, uint32_t width, uint32_t height) + { + glBindTexture(GL_TEXTURE_2D, textureID); + glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data); + } + + void TextureManager::ResizeTexture(uint32_t textureID, uint32_t width, uint32_t height) + { + glBindTexture(GL_TEXTURE_2D, textureID); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, nullptr); + } +}; |
