Foundation
Loading...
Searching...
No Matches
Classes | Functions
Texture.hpp File Reference
#include <Core/Container.hpp>
#include <Math/Math.hpp>
#include <RHICore/Resource.hpp>
#include "Serialization.hpp"
#include "TextureDDS.hpp"

Go to the source code of this file.

Classes

struct  FTextureHeader
 
struct  FSerializedTexture
 
struct  FTexture
 

Functions

void LoadDDS (FTexture &texture, StringView path)
 
void LoadRGBA8 (FTexture &texture, StringView path, bool gamma=true)
 
void LoadRGBA8 (FTexture &texture, Span< const unsigned char > data, bool gamma=true)
 
void LoadHDR (FTexture &texture, StringView path)
 
void LoadHDR (FTexture &texture, Span< const unsigned char > data)
 
void SaveHDR (const float *data, int width, int height, StringView path)
 
void SavePNG (const unsigned char *data, int width, int height, StringView path)
 
float4 SampleF32Bilinear (Span< const float4 > mip, uint32_t mipW, uint32_t mipH, float u, float v)
 
float4 SampleF32Trilinear (const float4 *const *mips, const uint32_t *mipW, const uint32_t *mipH, uint32_t mipCount, float u, float v, float mip)
 
float2 EquirectDirectionToUV (float3 dir)
 
float3 EquirectUVToDirection (float2 uv)
 
template<>
void FSerialize (FWriter &w, FSerializedTexture const &obj)
 
template<>
void FDeserialize (FReader &r, FSerializedTexture &obj)
 
template<>
void FSerialize (FWriter &w, FTexture const &obj)
 
template<>
void FDeserialize (FReader &r, FTexture &obj)
 

Function Documentation

◆ EquirectDirectionToUV()

float2 EquirectDirectionToUV ( float3  dir)

◆ EquirectUVToDirection()

float3 EquirectUVToDirection ( float2  uv)

◆ FDeserialize() [1/2]

template<>
void FDeserialize ( FReader r,
FSerializedTexture obj 
)
inline

◆ FDeserialize() [2/2]

template<>
void FDeserialize ( FReader r,
FTexture obj 
)
inline

◆ FSerialize() [1/2]

template<>
void FSerialize ( FWriter w,
FSerializedTexture const &  obj 
)
inline

◆ FSerialize() [2/2]

template<>
void FSerialize ( FWriter w,
FTexture const &  obj 
)
inline

◆ LoadDDS()

void LoadDDS ( FTexture texture,
StringView  path 
)

Loads a DDS file into a texture

Note
This is an alias of FSerialize. FTexture is in fact in standard DDS format.

◆ LoadHDR() [1/2]

void LoadHDR ( FTexture texture,
Span< const unsigned char >  data 
)

◆ LoadHDR() [2/2]

void LoadHDR ( FTexture texture,
StringView  path 
)

Loads HDR image formats (.hdr) via stb_image into an R32G32B32A32Float texture. Used for environment maps.

◆ LoadRGBA8() [1/2]

void LoadRGBA8 ( FTexture texture,
Span< const unsigned char >  data,
bool  gamma = true 
)

Loads standard image formats (PNG, JPG, etc.) via stb_image into an uncompressed R8G8B8A8 texture from memory

Parameters
gammaWhether to load the image as sRGB (true) or linear (false) encoding.

◆ LoadRGBA8() [2/2]

void LoadRGBA8 ( FTexture texture,
StringView  path,
bool  gamma = true 
)

Loads standard image formats (PNG, JPG, etc.) via stb_image into an uncompressed R8G8B8A8 texture

Parameters
gammaWhether to load the image as sRGB (true) or linear (false) encoding.

◆ SampleF32Bilinear()

float4 SampleF32Bilinear ( Span< const float4 >  mip,
uint32_t  mipW,
uint32_t  mipH,
float  u,
float  v 
)

◆ SampleF32Trilinear()

float4 SampleF32Trilinear ( const float4 *const *  mips,
const uint32_t *  mipW,
const uint32_t *  mipH,
uint32_t  mipCount,
float  u,
float  v,
float  mip 
)

◆ SaveHDR()

void SaveHDR ( const float *  data,
int  width,
int  height,
StringView  path 
)

Saves float RGBA pixel data as an HDR image. Output format is Radiance HDR (stb_image_write), RGB only (alpha discarded).

Parameters
dataPointer to float RGBA pixel data (4 floats per pixel).
widthImage width in pixels.
heightImage height in pixels.
pathOutput file path.

◆ SavePNG()

void SavePNG ( const unsigned char *  data,
int  width,
int  height,
StringView  path 
)

Saves RGBA8 data as a PNG (.png) file via stb_image_write.

Parameters
dataPointer to uint8 RGBA pixel data (4 bytes per pixel).
widthImage width in pixels.
heightImage height in pixels.
pathOutput file path.