diff options
| author | hachem <im@hachem.wtf> | 2026-08-23 21:55:36 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-23 21:55:36 +0200 |
| commit | 5ea6c14c0e14bacee766ce1280ab2c71564e05ec (patch) | |
| tree | 34620051e8eaf65db4ff9cd40ffd982a03e1ccc8 /src/rendering/texture.h | |
| parent | 8742482311b86bb705d93336805ab26881e96070 (diff) | |
[feat]: implement ui layer arch
Diffstat (limited to 'src/rendering/texture.h')
| -rw-r--r-- | src/rendering/texture.h | 83 |
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 - }; -}; |
