Nebula
Loading...
Searching...
No Matches
Frame::FrameOp Class Referenceabstract

#include <frameop.h>

Inherited by Frame::FrameBarrier, Frame::FrameBlit, Frame::FrameCode, Frame::FrameCompute, Frame::FrameCopy, Frame::FrameEvent, Frame::FrameMipmap, Frame::FramePass, Frame::FramePlugin, Frame::FrameResolve, Frame::FrameSubgraph, Frame::FrameSubmission, Frame::FrameSubpass, Frame::FrameSubpassBatch, Frame::FrameSubpassFullscreenEffect, Frame::FrameSubpassOrderedBatch, Frame::FrameSubpassPlugin, and Frame::FrameSwap.

Classes

struct  BufferDependency
 
struct  BufferSubresourceDep
 
struct  BuildContext
 
struct  Compiled
 
struct  TextureDependency
 
struct  TextureSubresourceDep
 

Public Member Functions

 FrameOp ()
 constructor
 
virtual ~FrameOp ()
 destructor
 
virtual void Discard ()
 discard operation
 
void SetName (const Util::StringAtom &name)
 set name
 
const Util::StringAtomGetName () const
 get name
 
void SetEnabled (bool b)
 set if operation should be enabled
 
const bool GetEnabled () const
 get if operation is enabled
 
void AddChild (FrameOp *op)
 add child operation
 
const Util::Array< Frame::FrameOp * > & GetChildren ()
 get children
 
virtual void OnWindowResized ()
 handle display resizing
 

Public Attributes

CoreGraphics::BarrierDomain domain
 
CoreGraphics::QueueType queue
 
Util::Dictionary< CoreGraphics::TextureId, Util::Tuple< Util::StringAtom, CoreGraphics::PipelineStage, CoreGraphics::TextureSubresourceInfo > > textureDeps
 
Util::Dictionary< CoreGraphics::BufferId, Util::Tuple< Util::StringAtom, CoreGraphics::PipelineStage, CoreGraphics::BufferSubresourceInfo > > bufferDeps
 
Util::Dictionary< const CoreGraphics::TextureId *, Util::Tuple< Util::StringAtom, CoreGraphics::PipelineStage, CoreGraphics::TextureSubresourceInfo > > textureDepRefs
 
Util::Dictionary< const CoreGraphics::BufferId *, Util::Tuple< Util::StringAtom, CoreGraphics::PipelineStage, CoreGraphics::BufferSubresourceInfo > > bufferDepRefs
 

Protected Member Functions

virtual CompiledAllocCompiled (Memory::ArenaAllocator< BIG_CHUNK > &allocator)=0
 allocate instance of compiled
 
virtual void Build (const BuildContext &ctx)
 build operation
 
void SetupSynchronization (Memory::ArenaAllocator< BIG_CHUNK > &allocator, Util::Array< CoreGraphics::EventId > &events, Util::Array< CoreGraphics::BarrierId > &barriers, Util::Dictionary< CoreGraphics::BufferId, Util::Array< BufferDependency > > &buffers, Util::Dictionary< CoreGraphics::TextureId, Util::Array< TextureDependency > > &textures)
 setup synchronization
 

Static Protected Member Functions

static void AnalyzeAndSetupTextureBarriers (struct FrameOp::Compiled *op, CoreGraphics::TextureId tex, const Util::StringAtom &textureName, DependencyIntent readOrWrite, CoreGraphics::PipelineStage stage, CoreGraphics::BarrierDomain domain, const CoreGraphics::TextureSubresourceInfo &subres, CoreGraphics::QueueType fromQueue, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, CoreGraphics::BarrierCreateInfo > &barriers, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, CoreGraphics::EventCreateInfo > &waitEvents, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, struct FrameOp::Compiled * > &signalEvents, Util::Array< FrameOp::TextureDependency > &renderTextureDependencies)
 Analyze and setup barriers if needed.
 
static void AnalyzeAndSetupBufferBarriers (struct FrameOp::Compiled *op, CoreGraphics::BufferId buf, const Util::StringAtom &bufferName, DependencyIntent readOrWrite, CoreGraphics::PipelineStage stage, CoreGraphics::BarrierDomain domain, const CoreGraphics::BufferSubresourceInfo &subres, CoreGraphics::QueueType fromQueue, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, CoreGraphics::BarrierCreateInfo > &barriers, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, CoreGraphics::EventCreateInfo > &waitEvents, Util::Dictionary< Util::Tuple< CoreGraphics::PipelineStage, CoreGraphics::PipelineStage >, struct FrameOp::Compiled * > &signalEvents, Util::Array< FrameOp::BufferDependency > &bufferDependencies)
 

Protected Attributes

Util::Array< FrameOp * > children
 
Util::Dictionary< Util::StringAtom, FrameOp * > childrenByName
 
Compiledcompiled
 
Util::StringAtom name
 
IndexT index
 
bool enabled
 

Friends

class FrameScriptLoader
 
class FrameScript
 
class FramePass
 
class FrameSubpass
 
class FrameSubmission
 
class FrameSubgraph
 

Constructor & Destructor Documentation

◆ FrameOp()

Frame::FrameOp::FrameOp ( )

constructor

◆ ~FrameOp()

Frame::FrameOp::~FrameOp ( )
virtual

destructor

Member Function Documentation

◆ AddChild()

void Frame::FrameOp::AddChild ( FrameOp * op)
inline

add child operation

◆ AllocCompiled()

◆ AnalyzeAndSetupBufferBarriers()

◆ AnalyzeAndSetupTextureBarriers()

◆ Build()

void Frame::FrameOp::Build ( const BuildContext & ctx)
protectedvirtual

◆ Discard()

void Frame::FrameOp::Discard ( )
virtual

◆ GetChildren()

const Util::Array< Frame::FrameOp * > & Frame::FrameOp::GetChildren ( )
inline

get children

◆ GetEnabled()

const bool Frame::FrameOp::GetEnabled ( ) const
inline

get if operation is enabled

◆ GetName()

const Util::StringAtom & Frame::FrameOp::GetName ( ) const
inline

get name

◆ OnWindowResized()

void Frame::FrameOp::OnWindowResized ( )
virtual

◆ SetEnabled()

void Frame::FrameOp::SetEnabled ( bool b)
inline

set if operation should be enabled

◆ SetName()

void Frame::FrameOp::SetName ( const Util::StringAtom & name)
inline

set name

◆ SetupSynchronization()

setup synchronization

Friends And Related Symbol Documentation

◆ FramePass

friend class FramePass
friend

◆ FrameScript

friend class FrameScript
friend

◆ FrameScriptLoader

friend class FrameScriptLoader
friend

◆ FrameSubgraph

friend class FrameSubgraph
friend

◆ FrameSubmission

friend class FrameSubmission
friend

◆ FrameSubpass

friend class FrameSubpass
friend

Member Data Documentation

◆ bufferDepRefs

◆ bufferDeps

◆ children

Util::Array<FrameOp*> Frame::FrameOp::children
protected

◆ childrenByName

Util::Dictionary<Util::StringAtom, FrameOp*> Frame::FrameOp::childrenByName
protected

◆ compiled

Compiled* Frame::FrameOp::compiled
protected

◆ domain

CoreGraphics::BarrierDomain Frame::FrameOp::domain

◆ enabled

bool Frame::FrameOp::enabled
protected

◆ index

IndexT Frame::FrameOp::index
protected

◆ name

Util::StringAtom Frame::FrameOp::name
protected

◆ queue

CoreGraphics::QueueType Frame::FrameOp::queue

◆ textureDepRefs

◆ textureDeps


The documentation for this class was generated from the following files: