aboutsummaryrefslogtreecommitdiff
path: root/src/rendering/texture.h
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-08-23 21:55:36 +0200
committerhachem <im@hachem.wtf>2026-08-23 21:55:36 +0200
commit5ea6c14c0e14bacee766ce1280ab2c71564e05ec (patch)
tree34620051e8eaf65db4ff9cd40ffd982a03e1ccc8 /src/rendering/texture.h
parent8742482311b86bb705d93336805ab26881e96070 (diff)
[feat]: implement ui layer arch
Diffstat (limited to 'src/rendering/texture.h')
-rw-r--r--src/rendering/texture.h83
1 files changed, 0 insertions, 83 deletions
diff --git a/src/rendering/texture.h b/src/rendering/texture.h
deleted file mode 100644
index 5f68c78..0000000
--- a/src/rendering/texture.h
+++ /dev/null
@@ -1,83 +0,0 @@
-#pragma once
-
-#include "core/memory.h"
-
-#include <string>
-#include <cstdint>
-#include <glm/glm.hpp>
-
-namespace Donut
-{
- class Texture
- {
- public:
- virtual ~Texture() = default;
-
- virtual auto get_width() const -> uint32_t = 0;
- virtual auto get_height() const -> uint32_t = 0;
- virtual auto get_renderer_id() const -> uint32_t = 0;
-
- virtual auto set_data(void* data, uint32_t size) -> void = 0;
- virtual auto bind(uint32_t slot = 0) const -> void = 0;
- virtual auto bind_as_image(uint32_t slot = 0, bool read_only = false) const -> void = 0;
-
- virtual auto operator==(const Texture& other) const -> bool = 0;
- };
-
- class Texture2D : public Texture
- {
- public:
- Texture2D(uint32_t width, uint32_t height);
- Texture2D(const std::string& path);
- ~Texture2D();
-
- auto get_width() const -> uint32_t override { return m_width; }
- auto get_height() const -> uint32_t override { return m_height; }
- auto get_renderer_id() const -> uint32_t override { return m_renderer_id; }
-
- auto set_data(void* data, uint32_t size) -> void override;
- auto bind(uint32_t slot = 0) const -> void override;
- auto bind_as_image(uint32_t slot = 0, bool read_only = false) const -> void override;
-
- auto operator==(const Texture& other) const -> bool override { return m_renderer_id == other.get_renderer_id(); }
-
- static auto create(uint32_t width, uint32_t height) -> Ref<Texture2D>;
- static auto create(const std::string& path) -> Ref<Texture2D>;
-
- private:
- std::string m_path;
- uint32_t m_width = 0, m_height = 0;
- uint32_t m_renderer_id = 0;
- uint32_t m_internal_format = 0, m_data_format = 0; // GLenum values
- };
-
- class CubemapTexture : public Texture
- {
- public:
- CubemapTexture(uint32_t width, uint32_t height);
- CubemapTexture(const std::string& path);
- ~CubemapTexture();
-
- auto get_width() const -> uint32_t override { return m_width; }
- auto get_height() const -> uint32_t override { return m_height; }
- auto get_renderer_id() const -> uint32_t override { return m_renderer_id; }
-
- auto set_data(void* data, uint32_t size) -> void override;
- auto bind(uint32_t slot = 0) const -> void override;
- auto bind_as_image(uint32_t slot = 0, bool read_only = false) const -> void override;
-
- auto operator==(const Texture& other) const -> bool override { return m_renderer_id == other.get_renderer_id(); }
-
- static auto create(uint32_t width, uint32_t height) -> Ref<CubemapTexture>;
- static auto create_from_hdri(const std::string& path) -> Ref<CubemapTexture>;
-
- private:
- auto LoadHDRI(const std::string& path) -> void;
- auto convert_equirectangular_to_cubemap(float* hdr_data, int width, int height) -> void;
-
- std::string m_path;
- uint32_t m_width = 0, m_height = 0;
- uint32_t m_renderer_id = 0;
- uint32_t m_internal_format = 0, m_data_format = 0; // GLenum values
- };
-};