Foundation
Loading...
Searching...
No Matches
Classes | Namespaces | Functions | Variables
Renderer.hpp File Reference
#include <Async/ThreadPool.hpp>
#include <Core/StackAllocator.hpp>
#include <RHICore/Application.hpp>
#include "RenderPass.hpp"
#include "RenderResource.hpp"

Go to the source code of this file.

Classes

struct  Foundation::RenderCore::RendererDesc
 Parameters for Renderer creation. More...
 
class  Foundation::RenderCore::Renderer
 Renderer implementing a Frame Graph system with automatic resource tracking and synchronization. More...
 
struct  Foundation::RenderCore::Renderer::RendererSetup
 Helper class containing all states pertaining to Renderer's Setup phase. More...
 
struct  Foundation::RenderCore::Renderer::RendererSetup::ExecutionGroups
 
struct  Foundation::RenderCore::Renderer::FrameSyncObjects
 
struct  Foundation::RenderCore::Renderer::ExecutePerThreadCommandLists
 

Namespaces

namespace  Foundation
 
namespace  Foundation::RenderCore
 Core functionalities for rendering, including the Frame Graph implementation.
 

Functions

 Foundation::RenderCore::ENUM_NAME (Undefined)
 
 Foundation::RenderCore::ENUM_NAME (Setup)
 
 Foundation::RenderCore::ENUM_NAME (PostSetup)
 
 Foundation::RenderCore::ENUM_NAME (Execute)
 
 Foundation::RenderCore::ENUM_NAME_CONV_END ()
 
template<typename T >
ResourceHandle Foundation::RenderCore::createResource (Renderer *r, StringView name, T const &desc)
 Convenient functional wrapper to create a resource.
 
ResourceHandle Foundation::RenderCore::createSampler (Renderer *r, RHIDeviceSampler::SamplerDesc const &desc)
 Convenient functional wrapper to create a sampler.
 
template<typename T , typename... Args>
requires std::is_base_of_v<RenderPass, T>
TFoundation::RenderCore::createPassImplPriority (Renderer *r, StringView name, RHIDeviceQueueType queue, size_t priority, Args &&... args)
 Convenient functional wrapper to create a pass from a RenderPass* implementation with custom priority.
 
template<typename T , typename... Args>
requires std::is_base_of_v<RenderPass, T>
TFoundation::RenderCore::createPassImpl (Renderer *r, StringView name, RHIDeviceQueueType queue, Args &&... args)
 Convenient functional wrapper to create a pass from a RenderPass* implementation.
 
template<typename FSetup , typename FRecord , typename FSkip = FSkipDefault>
LambdaPass< FSetup, FRecord, FSkip > * Foundation::RenderCore::createPassPriority (Renderer *r, StringView name, RHIDeviceQueueType queue, size_t priority, FSetup &&setup, FRecord &&record, FSkip &&skip={})
 Convenient functional wrapper to create a pass from Setup/Record lambdas with custom priority.
 
template<typename FSetup , typename FRecord , typename FSkip = FSkipDefault>
LambdaPass< FSetup, FRecord, FSkip > * Foundation::RenderCore::createPass (Renderer *r, StringView name, RHIDeviceQueueType queue, FSetup &&setup, FRecord &&record, FSkip &&skip={})
 Convenient functional wrapper to create a pass from Setup/Record lambdas.
 

Variables

constexpr size_t Foundation::RenderCore::kMaxRenderPasses = 1024
 
constexpr size_t Foundation::RenderCore::kMaxCommandListsPerThread = kMaxRenderPasses
 
constexpr size_t Foundation::RenderCore::kExecuteArenaSize = 16 * (1 << 20)
 
const String Foundation::RenderCore::kBindpointIgnored = "<ignored>"
 
const RHIPipelineStage Foundation::RenderCore::kComputeStagesMask
 
const RHIResourceAccessBits Foundation::RenderCore::kAllShaderWrites
 
const RHIResourceAccessBits Foundation::RenderCore::kAllShaderReads