21 [[nodiscard]] uint32_t
GetDepth()
const;
35 [[nodiscard]] uint32_t
GetBpp()
const;
37 uint32_t mipLevels, uint32_t blockSize,
39 [[nodiscard]] uint32_t
GetSize()
const;
68 CHECK_MSG(index <
subresources.size(),
"Texture subresource {} missing from serialized texture", index);
84 uint32_t depth = 1, uint32_t mipCount = 1, uint32_t layerCount = 1);
141float4
SampleF32Trilinear(
const float4*
const* mips,
const uint32_t* mipW,
const uint32_t* mipH, uint32_t mipCount,
142 float u,
float v,
float mip);
#define CHECK_MSG(expr, format_str,...)
#define GLOBAL_ALLOC
Definition Allocator.hpp:240
#define CHECK(expr)
Definition Logging.hpp:92
#define DDS_CUBEMAP
Definition TextureDDS.hpp:305
constexpr uint32_t DDS_MAGIC
Definition TextureDDS.hpp:135
constexpr DDS_PIXELFORMAT DDSPF_DX10
Definition TextureDDS.hpp:278
void FSerialize(FWriter &w, FSerializedTexture const &obj)
Definition Texture.hpp:147
float2 EquirectDirectionToUV(float3 dir)
void SaveHDR(const float *data, int width, int height, StringView path)
Definition Texture.cpp:475
float3 EquirectUVToDirection(float2 uv)
float4 SampleF32Bilinear(Span< const float4 > mip, uint32_t mipW, uint32_t mipH, float u, float v)
void LoadHDR(FTexture &texture, StringView path)
Definition Texture.cpp:447
void FDeserialize(FReader &r, FSerializedTexture &obj)
Definition Texture.hpp:159
void LoadDDS(FTexture &texture, StringView path)
Definition Texture.cpp:417
float4 SampleF32Trilinear(const float4 *const *mips, const uint32_t *mipW, const uint32_t *mipH, uint32_t mipCount, float u, float v, float mip)
void LoadRGBA8(FTexture &texture, StringView path, bool gamma=true)
Definition Texture.cpp:424
void SavePNG(const unsigned char *data, int width, int height, StringView path)
Definition Texture.cpp:489
Allocator interface (noexcept)
Definition Allocator.hpp:29
std::vector< T, StlAllocator< T > > Vector
std::vector with explicit Foundation::Core::StlAllocator constructor
Definition Container.hpp:149
std::basic_string_view< char > StringView
Alias for std::basic_string_view<char>
Definition Container.hpp:56
std::span< T > Span
Alias for std::span
Definition Container.hpp:62
glm::vec< 3, uint32_t > RHIExtent3D
Definition Common.hpp:11
RHITextureDimension
Definition Common.hpp:276
RHIResourceFormat
Definition Common.hpp:34
Definition Allocator.hpp:6
Definition Serialization.hpp:27
Definition Serialization.hpp:45
virtual size_t read(void *dest, size_t size)=0
Definition Texture.hpp:46
uint32_t GetSubresourceIndex(uint32_t layer, uint32_t mip) const
Definition Texture.hpp:58
FSerializedTexture(Allocator *alloc=GLOBAL_ALLOC)
Definition Texture.hpp:51
bool IsValid() const
Definition Texture.hpp:72
FUUID id
Definition Texture.hpp:47
Vector< FBlobRef > subresources
Definition Texture.hpp:49
FUUID name
Definition Texture.hpp:48
uint32_t GetSubresourceCount() const
Definition Texture.hpp:56
FBlobRef const & GetSubresourceBlob(uint32_t layer, uint32_t mip) const
Definition Texture.hpp:65
Definition Texture.hpp:79
void GenerateMips()
Definition Texture.cpp:319
Vector< unsigned char > bytes
Definition Texture.hpp:80
bool IsValid() const
Definition Texture.hpp:85
Span< unsigned char > GetSubresource(uint32_t mipLevel=0, uint32_t arrayLayer=0) const
Definition Texture.cpp:261
void Initialize(RHIResourceFormat format, RHITextureDimension dimension, uint32_t width, uint32_t height=1, uint32_t depth=1, uint32_t mipCount=1, uint32_t layerCount=1)
Definition Texture.cpp:14
FTexture EncodeBC7(Allocator *alloc=GLOBAL_ALLOC) const
Definition Texture.cpp:496
Definition Serialization.hpp:37
virtual size_t write(const void *data, size_t size)=0
128-bit identifier. Two flavors, both well-formed per RFC 9562:
Definition UUID.hpp:35
Definition Resource.hpp:142