Foundation
Loading...
Searching...
No Matches
Scene.hpp
Go to the documentation of this file.
1#pragma once
2#include <Core/Pool.hpp>
4#include "Camera.hpp"
5#include "Grid.hpp"
6#include "Instance.hpp"
7#include "Mesh.hpp"
8
9namespace ModelViewer {
10 using namespace Foundation;
11 using namespace Rendering;
13 constexpr uint32_t kSceneInvalid = ~0u;
14 // TODO: Docs docs docs.
15 // Minus how everything here are still me figuring things out. Maybe later.
16 class Scene
17 {
22 public:
24
25 float mTime{};
26
27 /* -- Data -- */
28 // TODO: Ugly - we do have a upper bound and data are in fact expected
29 // to be tightly packed. This works for now.
34
41 void CommitParams();
43
46 void FreeMesh(SceneHandle handle);
47
49 void UnmapInstances();
50 };
51}
General Purpose Allocator (GPA) interface.
Definition Allocator.hpp:24
Scene data management for asynchronous data updates/uploads on the GPU.
Definition GPUScene.hpp:50
Definition Scene.hpp:17
Grid mGrid
Definition Scene.hpp:33
Camera mCullingCamera
Definition Scene.hpp:32
MeshAllocation const & QueryMesh(SceneHandle handle)
Definition Scene.cpp:88
SceneHandle PushMesh(MeshScratchBuffers const &data)
Definition Scene.cpp:46
Pool< SceneHandle, MeshAllocation > mMeshes
Definition Scene.hpp:20
Span< Instance > MapInstances()
Definition Scene.cpp:110
VirtualAllocation GetParamsAllocationRawOffset() const
Definition Scene.cpp:42
Camera mCamera
Definition Scene.hpp:31
void UnmapInstances()
Definition Scene.cpp:113
GPUScene * mGPUScene
Definition Scene.hpp:19
uint32_t mInstanceCount
Definition Scene.hpp:30
float mTime
Definition Scene.hpp:25
Allocator * mAllocator
Definition Scene.hpp:18
void CommitParams()
Definition Scene.cpp:33
VirtualAllocation mSceneParamsAllocation
Definition Scene.hpp:21
void FreeMesh(SceneHandle handle)
Definition Scene.cpp:92
std::unique_ptr< T, StlDeleter< T > > UniquePtr
std::unique_ptr with custom deleter that uses a Foundation::Core::Allocator to deallocate memory.
Definition Allocator.hpp:161
uint32_t VirtualAllocation
Definition VirtualAllocator.hpp:9
Definition Future.hpp:8
ModelViewer implementation.
Definition App.cpp:17
constexpr uint32_t kSceneInvalid
Definition Scene.hpp:13
uint32_t SceneHandle
Definition Scene.hpp:12
Definition Camera.hpp:26
Definition Camera.hpp:17
Definition Camera.hpp:7
Definition Grid.hpp:7
Definition Mesh.hpp:49
Definition Mesh.hpp:23
Definition Scene.hpp:36
Camera::CullParams cullParams
Definition Scene.hpp:38
Camera::Params camera
Definition Scene.hpp:37
uint32_t instanceCount
Definition Scene.hpp:39