Foundation
Loading...
Searching...
No Matches
GPUScene.hpp
Go to the documentation of this file.
1#pragma once
4
5namespace Foundation::RHI { struct RHIDeviceCapabilities; }
6
18
19bool IsSceneEnvironmentTexture(FImportedScene const& scene, size_t textureIndex);
20
22 uint32_t minLightBudget = 1024u);
23void UploadSceneResources(FImportedScene& scene, GPUScene& gpu, FSceneGPUResources& outResources);
24void UploadSceneEnvironment(FImportedScene const& scene, FLight const& environment, GPUScene& gpu);
25
26// NOTE: For scene it's Instances, Materials and Lights only.
28 RendererUBO& globals, uint32_t frameNumber = UINT32_MAX);
#define GLOBAL_ALLOC
Definition Allocator.hpp:240
GPUScene::UpdateResult CommitSceneToGPU(FImportedScene &scene, GPUScene &gpu, FSceneGPUResources const &resources, RendererUBO &globals, uint32_t frameNumber=UINT32_MAX)
Definition GPUScene.cpp:249
bool IsSceneEnvironmentTexture(FImportedScene const &scene, size_t textureIndex)
Definition GPUScene.cpp:7
GPUSceneDesc CalculateSceneGPUDesc(FImportedScene const &scene, Foundation::RHI::RHIDeviceCapabilities const &caps, uint32_t minLightBudget=1024u)
Definition GPUScene.cpp:15
void UploadSceneResources(FImportedScene &scene, GPUScene &gpu, FSceneGPUResources &outResources)
Definition GPUScene.cpp:23
void UploadSceneEnvironment(FImportedScene const &scene, FLight const &environment, GPUScene &gpu)
Definition GPUScene.cpp:114
Definition GPUScene.hpp:187
std::vector< T, StlAllocator< T > > Vector
std::vector with explicit Foundation::Core::StlAllocator constructor
Definition Container.hpp:149
std::unordered_map< K, V, Hash, KeyEq, StlAllocator< Pair< const K, V > > > HashMap
std::unordered_map with explicit Foundation::Core::StlAllocator constructor.
Definition Container.hpp:186
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:3
Definition Scene.hpp:376
Definition Scene.hpp:123
Definition GPUScene.hpp:8
Vector< TextureHandle > textureIDMap
Definition GPUScene.hpp:12
Vector< GeometryHandle > meshGeometry
Definition GPUScene.hpp:9
Vector< GeometryHandle > instanceGeometry
Definition GPUScene.hpp:11
HashMap< FUUID, uint32_t > textureById
Definition GPUScene.hpp:15
HashMap< FUUID, uint32_t > materialById
Definition GPUScene.hpp:16
HashMap< FUUID, uint32_t > curveById
Definition GPUScene.hpp:14
HashMap< FUUID, uint32_t > meshById
Definition GPUScene.hpp:13
Vector< GeometryHandle > curveGeometry
Definition GPUScene.hpp:10
Definition GPUScene.hpp:170
Definition GPUScene.hpp:245
Definition Renderer.hpp:11