#pragma once #include "RHITypes.h" #include "RHIEnums.h" #include "RHIResource.h" #include namespace XCEngine { namespace RHI { class RHITexture : public RHIResource { public: virtual ~RHITexture() = default; virtual uint32_t GetWidth() const = 0; virtual uint32_t GetHeight() const = 0; virtual uint32_t GetDepth() const = 0; virtual uint32_t GetMipLevels() const = 0; virtual Format GetFormat() const = 0; virtual TextureType GetTextureType() const = 0; virtual ResourceStates GetState() const = 0; virtual void SetState(ResourceStates state) = 0; virtual void* GetNativeHandle() = 0; virtual const std::string& GetName() const = 0; virtual void SetName(const std::string& name) = 0; virtual void Shutdown() = 0; }; } // namespace RHI } // namespace XCEngine