Cogs.Core
Public Types | Public Member Functions | Public Attributes | List of all members
Cogs::Core::ResolveResourceTask Class Reference
Inheritance diagram for Cogs::Core::ResolveResourceTask:
Cogs::Core::RenderTask

Public Types

enum class  ResolveAction {
  None , Copy , Resolve , ColorShader ,
  DepthShader
}
 

Public Member Functions

void cleanup (RenderTaskContext *context)
 
Cogs::ResourceStatus checkReady (RenderTaskContext *context) override
 Check if the task is ready to be applied, e.g.
 
void apply (RenderTaskContext *renderContext) override
 
Cogs::ResourceStatus setupColorEffect (RenderTaskContext *context)
 
Cogs::ResourceStatus setupDepthEffect (RenderTaskContext *context)
 
void resolveColorShader (RenderTaskContext *context, RenderTexture *inputTexture, RenderTexture *outputTexture)
 
void resolveDepthShader (RenderTaskContext *context, RenderTexture *inputTexture, RenderTexture *outputTexture)
 
- Public Member Functions inherited from Cogs::Core::RenderTask
virtual void initialize (RenderTaskContext *)
 
virtual void cleanup (RenderTaskContext *)
 
virtual void apply (RenderTaskContext *)=0
 
virtual Cogs::ResourceStatus checkReady (RenderTaskContext *)
 Check if the task is ready to be applied, e.g.
 
bool isStatic () const
 

Public Attributes

ResolveAction action = ResolveAction::None
 
CachedEffectcolorEffect = nullptr
 
InputLayoutHandle colorInputLayout = InputLayoutHandle::NoHandle
 
TextureBindingHandle colorTextureBinding = TextureBindingHandle::NoHandle
 
Cogs::ResourceStatus colorEffectStatus = Cogs::ResourceStatus::Pending
 
CachedEffectdepthEffect = nullptr
 
InputLayoutHandle depthInputLayout = InputLayoutHandle::NoHandle
 
TextureBindingHandle depthTextureBinding = TextureBindingHandle::NoHandle
 
Cogs::ResourceStatus depthEffectStatus = Cogs::ResourceStatus::Pending
 
- Public Attributes inherited from Cogs::Core::RenderTask
RenderTaskResources input
 
RenderTaskResources output
 
std::string name
 
std::vector< std::string > dependencies
 
PipelineOptions options
 
RenderTaskFlags::ERenderTaskFlags flags = RenderTaskFlags::None
 
bool allowSelfDependency = false
 
size_t frameMod = 0
 
size_t frameOffset = 0
 
std::function< void(void)> deleter
 

Detailed Description

Definition at line 11 of file ResolveResourceTask.h.

Member Enumeration Documentation

◆ ResolveAction

enum class Cogs::Core::ResolveResourceTask::ResolveAction
strong

Definition at line 29 of file ResolveResourceTask.h.

Constructor & Destructor Documentation

◆ ~ResolveResourceTask()

virtual Cogs::Core::ResolveResourceTask::~ResolveResourceTask ( )
inlinevirtual

Definition at line 14 of file ResolveResourceTask.h.

Member Function Documentation

◆ apply()

void Cogs::Core::ResolveResourceTask::apply ( RenderTaskContext renderContext)
overridevirtual

Implements Cogs::Core::RenderTask.

Definition at line 238 of file ResolveResourceTask.cpp.

◆ checkReady()

Cogs::ResourceStatus Cogs::Core::ResolveResourceTask::checkReady ( RenderTaskContext )
overridevirtual

Check if the task is ready to be applied, e.g.

that any effects it depends on have finished loading.

This is called unconditionally for every task, every frame, regardless of the readiness of other tasks - so that any pending loads triggered here get a chance to start as early as possible, instead of being serialized behind other tasks becoming ready first.

Returns
Cogs::ResourceStatus::Ready if apply() should be called this frame, Pending if the task should be retried next frame, or Error if the task has permanently failed.

Reimplemented from Cogs::Core::RenderTask.

Definition at line 208 of file ResolveResourceTask.cpp.

References Cogs::TextureFlags::DepthBuffer, Cogs::IGraphicsDevice::getType(), Cogs::Core::HandleIsValid(), Cogs::OpenGLES30, Cogs::Ready, and Cogs::WebGPU.

◆ cleanup()

void Cogs::Core::ResolveResourceTask::cleanup ( RenderTaskContext context)
virtual

Reimplemented from Cogs::Core::RenderTask.

Definition at line 202 of file ResolveResourceTask.cpp.

◆ resolveColorShader()

void Cogs::Core::ResolveResourceTask::resolveColorShader ( RenderTaskContext context,
RenderTexture inputTexture,
RenderTexture outputTexture 
)

Definition at line 82 of file ResolveResourceTask.cpp.

◆ resolveDepthShader()

void Cogs::Core::ResolveResourceTask::resolveDepthShader ( RenderTaskContext context,
RenderTexture inputTexture,
RenderTexture outputTexture 
)

Definition at line 143 of file ResolveResourceTask.cpp.

◆ setupColorEffect()

Cogs::ResourceStatus Cogs::Core::ResolveResourceTask::setupColorEffect ( RenderTaskContext context)

Definition at line 32 of file ResolveResourceTask.cpp.

◆ setupDepthEffect()

Cogs::ResourceStatus Cogs::Core::ResolveResourceTask::setupDepthEffect ( RenderTaskContext context)

Definition at line 57 of file ResolveResourceTask.cpp.

Member Data Documentation

◆ action

ResolveAction Cogs::Core::ResolveResourceTask::action = ResolveAction::None

Definition at line 38 of file ResolveResourceTask.h.

◆ colorEffect

CachedEffect* Cogs::Core::ResolveResourceTask::colorEffect = nullptr

Definition at line 40 of file ResolveResourceTask.h.

◆ colorEffectStatus

Cogs::ResourceStatus Cogs::Core::ResolveResourceTask::colorEffectStatus = Cogs::ResourceStatus::Pending

Definition at line 43 of file ResolveResourceTask.h.

◆ colorInputLayout

InputLayoutHandle Cogs::Core::ResolveResourceTask::colorInputLayout = InputLayoutHandle::NoHandle

Definition at line 41 of file ResolveResourceTask.h.

◆ colorTextureBinding

TextureBindingHandle Cogs::Core::ResolveResourceTask::colorTextureBinding = TextureBindingHandle::NoHandle

Definition at line 42 of file ResolveResourceTask.h.

◆ depthEffect

CachedEffect* Cogs::Core::ResolveResourceTask::depthEffect = nullptr

Definition at line 45 of file ResolveResourceTask.h.

◆ depthEffectStatus

Cogs::ResourceStatus Cogs::Core::ResolveResourceTask::depthEffectStatus = Cogs::ResourceStatus::Pending

Definition at line 48 of file ResolveResourceTask.h.

◆ depthInputLayout

InputLayoutHandle Cogs::Core::ResolveResourceTask::depthInputLayout = InputLayoutHandle::NoHandle

Definition at line 46 of file ResolveResourceTask.h.

◆ depthTextureBinding

TextureBindingHandle Cogs::Core::ResolveResourceTask::depthTextureBinding = TextureBindingHandle::NoHandle

Definition at line 47 of file ResolveResourceTask.h.


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