Grindstone Game Engine v0.2.0
An open source game engine and toolkit.
Loading...
Searching...
No Matches
Grindstone::Renderer Namespace Reference

Classes

struct  AABB
struct  AttachmentInfo
class  Bloom
class  Blur
struct  BufferDescription
struct  BufferTransfer
struct  BuilderBufferTransfer
struct  BuilderImageTransfer
class  ComputeRenderGraphBuilderPass
class  ComputeRenderGraphBuilderPassBase
class  ComputeRenderGraphPass
class  ComputeRenderGraphPassBase
struct  CullingFrustum
class  Debug
struct  DeferredRendererRenderPasses
class  DepthOfField
class  Forward
class  Gbuffer
struct  GbufferData
class  GraphicsRenderGraphBuilderPass
class  GraphicsRenderGraphBuilderPassBase
class  GraphicsRenderGraphPass
class  GraphicsRenderGraphPassBase
struct  ImageDescription
struct  ImageTransfer
class  Lighting
struct  MetaRect
struct  MetaSize
struct  MetaSize2D
struct  OBB
struct  PassBufferDesc
struct  PassImageDesc
class  PipelineRenderGraphBuilderPass
class  PipelineRenderGraphPass
struct  PostProcessSettings
class  PresentRenderGraphBuilderPass
class  PresentRenderGraphPass
struct  RenderableBufferPair
struct  RenderFrameContext
struct  RenderFrameViewContext
class  RenderGraph
class  RenderGraphBuilder
class  RenderGraphBuilderPass
struct  RenderGraphBuilderResourceRef
struct  RenderGraphContext
struct  RenderGraphFrameResources
class  RenderGraphPass
struct  RenderGraphResourceRef
class  RenderingPipeline
struct  RenderMode
class  ScreenSpaceAmbientOcclusion
class  ScreenSpaceReflections
class  Shadow
struct  ShadowPassReturnData
class  Skinning
class  Smaa
class  Tonemap
class  TransferRenderGraphBuilderPass
class  TransferRenderGraphPass
struct  TransientBufferData
struct  TransientBufferDescription
struct  TransientBufferKey
struct  TransientImageData
struct  TransientImageDescription
struct  TransientImageKey
class  TransientResourceManager
union  TransientResourceUnion

Typedefs

using UnionResourceDescription = std::variant<Grindstone::Renderer::ImageDescription, Grindstone::Renderer::BufferDescription>
using PassId = uint16_t
using ResourceId = uint16_t

Enumerations

enum class  RenderGraphImageUsage : uint16_t {
  None = 0 , Read = 1 << 0 , Write = 1 << 1 , Sampled = 1 << 2 ,
  Storage = 1 << 3 , ColorAttachment = 1 << 4 , DepthAttachment = 1 << 5 , StencilAttachment = 1 << 6 ,
  SubpassInputAttachment = 1 << 7 , Transfer = 1 << 8 , SampledRead = static_cast<uint16_t>(RenderGraphImageUsage::Sampled) | static_cast<uint16_t>(RenderGraphImageUsage::Read) , StorageRead = static_cast<uint16_t>(RenderGraphImageUsage::Storage) | static_cast<uint16_t>(RenderGraphImageUsage::Read) ,
  StorageWrite = static_cast<uint16_t>(RenderGraphImageUsage::Storage) | static_cast<uint16_t>(RenderGraphImageUsage::Write) , StorageReadWrite = static_cast<uint16_t>(RenderGraphImageUsage::StorageRead) | static_cast<uint16_t>(RenderGraphImageUsage::Write) , ColorAttachmentRead = static_cast<uint16_t>(RenderGraphImageUsage::ColorAttachment) | static_cast<uint16_t>(RenderGraphImageUsage::Read) , ColorAttachmentWrite = static_cast<uint16_t>(RenderGraphImageUsage::ColorAttachment) | static_cast<uint16_t>(RenderGraphImageUsage::Write) ,
  ColorAttachmentReadWrite = static_cast<uint16_t>(RenderGraphImageUsage::ColorAttachmentRead) | static_cast<uint16_t>(RenderGraphImageUsage::Write) , DepthAttachmentRead = static_cast<uint16_t>(RenderGraphImageUsage::DepthAttachment) | static_cast<uint16_t>(RenderGraphImageUsage::Read) , DepthAttachmentWrite = static_cast<uint16_t>(RenderGraphImageUsage::DepthAttachment) | static_cast<uint16_t>(RenderGraphImageUsage::Write) , DepthAttachmentReadWrite = static_cast<uint16_t>(RenderGraphImageUsage::DepthAttachmentRead) | static_cast<uint16_t>(RenderGraphImageUsage::Write) ,
  StencilAttachmentRead = static_cast<uint16_t>(RenderGraphImageUsage::StencilAttachment) | static_cast<uint16_t>(RenderGraphImageUsage::Read) , StencilAttachmentWrite = static_cast<uint16_t>(RenderGraphImageUsage::StencilAttachment) | static_cast<uint16_t>(RenderGraphImageUsage::Write) , StencilAttachmentReadWrite = static_cast<uint16_t>(RenderGraphImageUsage::StencilAttachmentRead) | static_cast<uint16_t>(RenderGraphImageUsage::Write) , DepthStencilAttachmentRead = static_cast<uint16_t>(RenderGraphImageUsage::DepthAttachmentRead) | static_cast<uint16_t>(RenderGraphImageUsage::StencilAttachment) ,
  DepthStencilAttachmentWrite = static_cast<uint16_t>(RenderGraphImageUsage::DepthAttachmentWrite) | static_cast<uint16_t>(RenderGraphImageUsage::StencilAttachment) , DepthStencilAttachmentReadWrite = static_cast<uint16_t>(RenderGraphImageUsage::DepthAttachmentReadWrite) | static_cast<uint16_t>(RenderGraphImageUsage::StencilAttachment) , SubpassInputAttachmentRead = static_cast<uint16_t>(RenderGraphImageUsage::SubpassInputAttachment) | static_cast<uint16_t>(RenderGraphImageUsage::Read) , TransferSrc = static_cast<uint16_t>(RenderGraphImageUsage::Transfer) | static_cast<uint16_t>(RenderGraphImageUsage::Read) ,
  TransferDst = static_cast<uint16_t>(RenderGraphImageUsage::Transfer) | static_cast<uint16_t>(RenderGraphImageUsage::Write)
}
enum class  GpuPassType : uint8_t {
  None , Graphics , Compute , Transfer ,
  Present
}
enum class  AccessType { Read , Write , ReadWrite }
enum class  DeferredRenderMode : uint16_t {
  Default , Position , PositionMod , ViewPosition ,
  ViewPositionMod , Depth , DepthMod , Normal ,
  ViewNormal , Albedo , Specular , Roughness ,
  AmbientOcclusion , Count
}

Functions

bool IsInFrustum (const CullingFrustum &frustum, const glm::mat4 &viewModelMatrix, const AABB &aabb)
CullingFrustum CreateFrustum (const Grindstone::Rendering::RenderViewData &renderViewData)
template<typename MeshComponentType, typename RenderTask>
std::vector< RenderTask > GenerateTaskList (Grindstone::Rendering::GeometryRenderStats &renderingStats, Grindstone::HashedString renderQueueHash, entt::registry &registry, const Grindstone::Rendering::AssetRendererFilter &filter, const Grindstone::Renderer::CullingFrustum &frustum, const glm::mat4 &viewMatrix, std::function< void(std::vector< RenderTask > &, const Grindstone::HashedString, const Mesh3dAsset::Submesh &, const Mesh3dAsset *, const MeshComponentType &, const MeshRendererComponent &)> submeshCallback)
template<typename RenderTask>
void RenderAllTasks (Grindstone::Rendering::GeometryRenderStats &renderingStats, GraphicsAPI::DescriptorSet *engineDescriptorSet, GraphicsAPI::CommandBuffer *commandBuffer, const std::vector< RenderTask > &renderTasks)
template<typename RenderTask>
int CompareRenderSort (const RenderTask &a, const RenderTask &b)
template<typename RenderTask>
int CompareReverseRenderSort (const RenderTask &a, const RenderTask &b)
template<typename RenderTask>
void SortRenderTasks (std::vector< RenderTask > &renderTasks)
template<typename RenderTask>
void SortRenderTasksReverse (std::vector< RenderTask > &renderTasks)
DeferredRendererRenderPasses InitializeRenderPasses ()
void ReleaseRenderPasses (DeferredRendererRenderPasses &rps)

Variables

const PassId invalidPassId = std::numeric_limits<PassId>().max()
const ResourceId invalidResourceId = std::numeric_limits<ResourceId>().max()