Nebula
Loading...
Searching...
No Matches
CoreGraphics::DrawThread Class Reference

#include <drawthread.h>

Detailed Description

A CoreGraphics thread meant to only record draw commands to command buffers.

Inherits Thread.

Inherited by Vulkan::VkCommandBufferThread.

Classes

struct  Command
 
struct  CommandBuffer
 
struct  SyncCommand
 

Public Types

enum  CommandType {
  BeginCommand , ResetCommand , EndCommand , GraphicsPipeline ,
  ComputePipeline , InputAssemblyVertex , InputAssemblyIndex , Draw ,
  IndirectDraw , IndirectIndexedDraw , Dispatch , BindDescriptors ,
  PushRange , Viewport , ViewportArray , ScissorRect ,
  ScissorRectArray , StencilRefs , StencilReadMask , StencilWriteMask ,
  UpdateBuffer , SetEvent , ResetEvent , WaitForEvent ,
  Barrier , Sync , Timestamp , BeginQuery ,
  EndQuery , BeginMarker , EndMarker , InsertMarker
}
 

Public Member Functions

 DrawThread ()
 constructor
 
void EmitWakeupSignal () override
 called if thread needs a wakeup call before stopping
 
template<typename T >
void Push (const T &command)
 push command to thread
 
void Flush ()
 flush commands
 
void Signal (Threading::Event *event)
 submit sync call
 

Protected Attributes

Threading::CriticalSection lock
 
Threading::Event signalEvent
 
Util::Array< Commandcommands
 
CommandBuffer commandBuffer
 
Threading::Eventevent
 

Member Enumeration Documentation

◆ CommandType

Enumerator
BeginCommand 
ResetCommand 
EndCommand 
GraphicsPipeline 
ComputePipeline 
InputAssemblyVertex 
InputAssemblyIndex 
Draw 
IndirectDraw 
IndirectIndexedDraw 
Dispatch 
BindDescriptors 
PushRange 
Viewport 
ViewportArray 
ScissorRect 
ScissorRectArray 
StencilRefs 
StencilReadMask 
StencilWriteMask 
UpdateBuffer 
SetEvent 
ResetEvent 
WaitForEvent 
Barrier 
Sync 
Timestamp 
BeginQuery 
EndQuery 
BeginMarker 
EndMarker 
InsertMarker 

Constructor & Destructor Documentation

◆ DrawThread()

CoreGraphics::DrawThread::DrawThread ( )

constructor

Member Function Documentation

◆ EmitWakeupSignal()

void CoreGraphics::DrawThread::EmitWakeupSignal ( )
override

called if thread needs a wakeup call before stopping

◆ Flush()

void CoreGraphics::DrawThread::Flush ( )

flush commands

◆ Push()

template<typename T >
void CoreGraphics::DrawThread::Push ( const T & command)
inline

push command to thread

◆ Signal()

void CoreGraphics::DrawThread::Signal ( Threading::Event * event)

submit sync call

Member Data Documentation

◆ commandBuffer

CommandBuffer CoreGraphics::DrawThread::commandBuffer
protected

◆ commands

Util::Array<Command> CoreGraphics::DrawThread::commands
protected

◆ event

Threading::Event* CoreGraphics::DrawThread::event
protected

◆ lock

Threading::CriticalSection CoreGraphics::DrawThread::lock
protected

◆ signalEvent

Threading::Event CoreGraphics::DrawThread::signalEvent
protected

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