Foundation
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions | Variables
Scene.hpp File Reference
#include <Core/JobSystem.hpp>
#include <Renderer/Mesh.hpp>
#include <Renderer/Animation.hpp>
#include <Renderer/Curve.hpp>
#include <Renderer/Serialization.hpp>
#include <Renderer/Texture.hpp>
#include <utility>

Go to the source code of this file.

Classes

struct  FInstance
 
struct  FCamera
 
struct  FMaterial
 
struct  FLight
 
struct  FSceneGlobals
 
struct  FStringEntry
 
struct  FSceneTables
 
struct  FSceneIndex
 
struct  FSceneHeader
 
struct  FImportedScene
 
struct  FSceneBuildOptions
 

Namespaces

namespace  Foundation
 
namespace  Foundation::RHI
 Low-level Rendering Hardware Interface (RHI) abstractions.
 

Enumerations

enum class  FInstanceType : uint32_t { Mesh = 0 , Curve = 1 }
 
enum class  FMaterialShaderBlock : uint32_t { Principled = 0 , Hair = 1 }
 
enum class  FLightType : uint32_t {
  Environment = 0 , Directional = 1 , Point = 2 , Spot = 3 ,
  Disk = 4 , Rect = 5
}
 
enum class  FSceneTextureCompression : uint32_t { BC7 = 0 , None = 1 }
 

Functions

FLight MakeDefaultEnvironmentLight ()
 
template<>
void FSerialize (FWriter &writer, FSerializedMesh const &mesh)
 
template<>
void FDeserialize (FReader &reader, FSerializedMesh &mesh)
 
template<>
void FSerialize (FWriter &writer, FSkeleton const &skel)
 
template<>
void FDeserialize (FReader &reader, FSkeleton &skel)
 
template<>
void FSerialize (FWriter &writer, FAnimChannel const &channel)
 
template<>
void FDeserialize (FReader &reader, FAnimChannel &channel)
 
template<>
void FSerialize (FWriter &writer, FAnimationClip const &clip)
 
template<>
void FDeserialize (FReader &reader, FAnimationClip &clip)
 
template<>
void FSerialize (FWriter &writer, FStringEntry const &entry)
 
template<>
void FDeserialize (FReader &reader, FStringEntry &entry)
 
template<>
void FSerialize (FWriter &writer, FSceneTables const &tables)
 
template<>
void FDeserialize (FReader &reader, FSceneTables &tables)
 
void LoadGLTF (Foundation::RHI::RHIApplication const &app, JobSystem *jobs, StringView path, FImportedScene &scene, Allocator *scratchAlloc=GLOBAL_ALLOC, FSceneBuildOptions const &buildOptions=FSceneBuildOptions{})
 
void LoadFSCN (FImportedScene &scene)
 
String LoadScene (Foundation::RHI::RHIApplication const &app, JobSystem *jobs, StringView path, FImportedScene &scene, Allocator *scratchAlloc=GLOBAL_ALLOC, FSceneBuildOptions const &buildOptions=FSceneBuildOptions{})
 

Variables

static constexpr uint32_t kInvalidTexture = UINT32_MAX
 
static constexpr FUUID kDefaultMaterialUUID { .hi = 0x0f0f0f0f0f0f0f0full, .lo = 0x0000000000000001ull }
 
constexpr uint32_t kMaxSceneLights = 1024
 
static constexpr uint32_t kSceneMagic = fourCC("FSCN")
 
static constexpr uint32_t kSceneVersion = 26
 

Enumeration Type Documentation

◆ FInstanceType

enum class FInstanceType : uint32_t
strong
Enumerator
Mesh 
Curve 

◆ FLightType

enum class FLightType : uint32_t
strong
Enumerator
Environment 
Directional 
Point 
Spot 
Disk 
Rect 

◆ FMaterialShaderBlock

enum class FMaterialShaderBlock : uint32_t
strong
Enumerator
Principled 
Hair 

◆ FSceneTextureCompression

enum class FSceneTextureCompression : uint32_t
strong
Enumerator
BC7 
None 

Function Documentation

◆ FDeserialize() [1/6]

template<>
void FDeserialize ( FReader reader,
FAnimationClip clip 
)
inline

◆ FDeserialize() [2/6]

template<>
void FDeserialize ( FReader reader,
FAnimChannel channel 
)
inline

◆ FDeserialize() [3/6]

template<>
void FDeserialize ( FReader reader,
FSceneTables tables 
)
inline

◆ FDeserialize() [4/6]

template<>
void FDeserialize ( FReader reader,
FSerializedMesh mesh 
)
inline

◆ FDeserialize() [5/6]

template<>
void FDeserialize ( FReader reader,
FSkeleton skel 
)
inline

◆ FDeserialize() [6/6]

template<>
void FDeserialize ( FReader reader,
FStringEntry entry 
)
inline

◆ FSerialize() [1/6]

template<>
void FSerialize ( FWriter writer,
FAnimationClip const &  clip 
)
inline

◆ FSerialize() [2/6]

template<>
void FSerialize ( FWriter writer,
FAnimChannel const &  channel 
)
inline

◆ FSerialize() [3/6]

template<>
void FSerialize ( FWriter writer,
FSceneTables const &  tables 
)
inline

◆ FSerialize() [4/6]

template<>
void FSerialize ( FWriter writer,
FSerializedMesh const &  mesh 
)
inline

◆ FSerialize() [5/6]

template<>
void FSerialize ( FWriter writer,
FSkeleton const &  skel 
)
inline

◆ FSerialize() [6/6]

template<>
void FSerialize ( FWriter writer,
FStringEntry const &  entry 
)
inline

◆ LoadFSCN()

void LoadFSCN ( FImportedScene scene)

◆ LoadGLTF()

void LoadGLTF ( Foundation::RHI::RHIApplication const &  app,
JobSystem jobs,
StringView  path,
FImportedScene scene,
Allocator scratchAlloc = GLOBAL_ALLOC,
FSceneBuildOptions const &  buildOptions = FSceneBuildOptions{} 
)

◆ LoadScene()

String LoadScene ( Foundation::RHI::RHIApplication const &  app,
JobSystem jobs,
StringView  path,
FImportedScene scene,
Allocator scratchAlloc = GLOBAL_ALLOC,
FSceneBuildOptions const &  buildOptions = FSceneBuildOptions{} 
)

Loads a scene from a path, inferring format from extension. Returns the FSCN path that backs payload blob reads.

◆ MakeDefaultEnvironmentLight()

FLight MakeDefaultEnvironmentLight ( )
inline

Variable Documentation

◆ kDefaultMaterialUUID

constexpr FUUID kDefaultMaterialUUID { .hi = 0x0f0f0f0f0f0f0f0full, .lo = 0x0000000000000001ull }
staticconstexpr

◆ kInvalidTexture

constexpr uint32_t kInvalidTexture = UINT32_MAX
staticconstexpr

◆ kMaxSceneLights

constexpr uint32_t kMaxSceneLights = 1024
inlineconstexpr

◆ kSceneMagic

constexpr uint32_t kSceneMagic = fourCC("FSCN")
staticconstexpr

◆ kSceneVersion

constexpr uint32_t kSceneVersion = 26
staticconstexpr