Blender  V2.93
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
blender::compositor::RenderLayersProg Class Reference

#include <COM_RenderLayersProg.h>

Inherits blender::compositor::NodeOperation.

Inherited by blender::compositor::RenderLayersAOOperation, blender::compositor::RenderLayersAlphaProg, and blender::compositor::RenderLayersDepthProg.

Public Member Functions

 RenderLayersProg (const char *passName, DataType type, int elementsize)
 
void setScene (Scene *scene)
 
ScenegetScene () const
 
void setRenderData (const RenderData *rd)
 
void setLayerId (short layerId)
 
short getLayerId () const
 
void setViewName (const char *viewName)
 
const char * getViewName ()
 
void initExecution () override
 
void deinitExecution () override
 
void executePixelSampled (float output[4], float x, float y, PixelSampler sampler) override
 calculate a single pixel More...
 
std::unique_ptr< MetaDatagetMetaData () override
 
- Public Member Functions inherited from blender::compositor::NodeOperation
virtual ~NodeOperation ()
 
void set_name (const std::string name)
 
const std::string get_name () const
 
void set_id (const int id)
 
const int get_id () const
 
const NodeOperationFlags get_flags () const
 
unsigned int getNumberOfInputSockets () const
 
unsigned int getNumberOfOutputSockets () const
 
NodeOperationOutputgetOutputSocket (unsigned int index=0)
 
NodeOperationInputgetInputSocket (unsigned int index)
 
virtual bool isOutputOperation (bool) const
 isOutputOperation determines whether this operation is an output of the ExecutionSystem during rendering or editing. More...
 
void setbNodeTree (const bNodeTree *tree)
 
virtual void executeRegion (rcti *, unsigned int)
 when a chunk is executed by a CPUDevice, this method is called More...
 
virtual void executeOpenCLRegion (OpenCLDevice *, rcti *, unsigned int, MemoryBuffer **, MemoryBuffer *)
 when a chunk is executed by an OpenCLDevice, this method is called More...
 
virtual void executeOpenCL (OpenCLDevice *, MemoryBuffer *, cl_mem, MemoryBuffer **, std::list< cl_mem > *, std::list< cl_kernel > *)
 custom handle to add new tasks to the OpenCL command queue in order to execute a chunk on an GPUDevice. More...
 
void setResolution (unsigned int resolution[2])
 set the resolution More...
 
virtual bool isActiveViewerOutput () const
 is this operation the active viewer output user can select an ViewerNode to be active (the result of this node will be drawn on the backdrop). More...
 
virtual bool determineDependingAreaOfInterest (rcti *input, ReadBufferOperation *readOperation, rcti *output)
 
void setResolutionInputSocketIndex (unsigned int index)
 set the index of the input socket that will determine the resolution of this operation More...
 
virtual eCompositorPriority getRenderPriority () const
 get the render priority of this node. More...
 
bool isBraked () const
 
void updateDraw ()
 
unsigned int getWidth () const
 
unsigned int getHeight () const
 
void readSampled (float result[4], float x, float y, PixelSampler sampler)
 
void readFiltered (float result[4], float x, float y, float dx[2], float dy[2])
 
void read (float result[4], int x, int y, void *chunkData)
 
virtual void * initializeTileData (rcti *)
 
virtual void deinitializeTileData (rcti *, void *)
 
virtual MemoryBuffergetInputMemoryBuffer (MemoryBuffer **)
 

Protected Member Functions

void determineResolution (unsigned int resolution[2], unsigned int preferredResolution[2]) override
 
floatgetInputBuffer ()
 
void doInterpolation (float output[4], float x, float y, PixelSampler sampler)
 
- Protected Member Functions inherited from blender::compositor::NodeOperation
 NodeOperation ()
 
void addInputSocket (DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
 
void addOutputSocket (DataType datatype)
 
void setWidth (unsigned int width)
 
void setHeight (unsigned int height)
 
SocketReadergetInputSocketReader (unsigned int inputSocketindex)
 
NodeOperationgetInputOperation (unsigned int inputSocketindex)
 
void deinitMutex ()
 
void initMutex ()
 
void lockMutex ()
 
void unlockMutex ()
 
void setComplex (bool complex)
 set whether this operation is complex More...
 
virtual void executePixel (float output[4], int x, int y, void *)
 calculate a single pixel More...
 
virtual void executePixelFiltered (float[4], float, float, float[2], float[2])
 calculate a single pixel using an EWA filter More...
 

Protected Attributes

Scenem_scene
 
short m_layerId
 
const char * m_viewName
 
floatm_inputBuffer
 
std::string m_passName
 
int m_elementsize
 
const RenderDatam_rd
 render data used for active rendering More...
 
- Protected Attributes inherited from blender::compositor::NodeOperation
unsigned int m_width
 
unsigned int m_height
 
NodeOperationFlags flags
 

Detailed Description

Base class for all renderlayeroperations

Todo:
: rename to operation.

Definition at line 36 of file COM_RenderLayersProg.h.

Constructor & Destructor Documentation

◆ RenderLayersProg()

blender::compositor::RenderLayersProg::RenderLayersProg ( const char *  passName,
DataType  type,
int  elementsize 
)

Member Function Documentation

◆ deinitExecution()

void blender::compositor::RenderLayersProg::deinitExecution ( )
overridevirtual

Reimplemented from blender::compositor::NodeOperation.

Definition at line 186 of file COM_RenderLayersProg.cc.

References m_inputBuffer.

◆ determineResolution()

void blender::compositor::RenderLayersProg::determineResolution ( unsigned int  resolution[2],
unsigned int  preferredResolution[2] 
)
overrideprotectedvirtual

Determine the output resolution. The resolution is retrieved from the Renderer

Reimplemented from blender::compositor::NodeOperation.

Definition at line 191 of file COM_RenderLayersProg.cc.

References BLI_findlink(), getLayerId(), getScene(), ViewLayer::name, RE_AcquireResultRead(), RE_GetRenderLayer(), RE_GetSceneRender(), RE_ReleaseResult(), RenderLayer::rectx, RenderLayer::recty, and Scene::view_layers.

◆ doInterpolation()

void blender::compositor::RenderLayersProg::doInterpolation ( float  output[4],
float  x,
float  y,
PixelSampler  sampler 
)
protected

◆ executePixelSampled()

void blender::compositor::RenderLayersProg::executePixelSampled ( float  [4],
float  ,
float  ,
PixelSampler   
)
overridevirtual

◆ getInputBuffer()

float* blender::compositor::RenderLayersProg::getInputBuffer ( )
inlineprotected

◆ getLayerId()

short blender::compositor::RenderLayersProg::getLayerId ( ) const
inline

Definition at line 112 of file COM_RenderLayersProg.h.

References m_layerId.

Referenced by determineResolution(), getMetaData(), and initExecution().

◆ getMetaData()

std::unique_ptr< MetaData > blender::compositor::RenderLayersProg::getMetaData ( )
overridevirtual

◆ getScene()

Scene* blender::compositor::RenderLayersProg::getScene ( ) const
inline

Definition at line 100 of file COM_RenderLayersProg.h.

References m_scene.

Referenced by determineResolution(), getMetaData(), and initExecution().

◆ getViewName()

const char* blender::compositor::RenderLayersProg::getViewName ( )
inline

Definition at line 120 of file COM_RenderLayersProg.h.

References m_viewName.

◆ initExecution()

void blender::compositor::RenderLayersProg::initExecution ( )
overridevirtual

◆ setLayerId()

void blender::compositor::RenderLayersProg::setLayerId ( short  layerId)
inline

Definition at line 108 of file COM_RenderLayersProg.h.

◆ setRenderData()

void blender::compositor::RenderLayersProg::setRenderData ( const RenderData rd)
inline

Definition at line 104 of file COM_RenderLayersProg.h.

◆ setScene()

void blender::compositor::RenderLayersProg::setScene ( Scene scene)
inline

setter for the scene field. Will be called from

See also
RenderLayerNode to set the actual scene where the data will be retrieved from.

Definition at line 96 of file COM_RenderLayersProg.h.

References scene.

Referenced by RenderLayersProg().

◆ setViewName()

void blender::compositor::RenderLayersProg::setViewName ( const char *  viewName)
inline

Definition at line 116 of file COM_RenderLayersProg.h.

Member Data Documentation

◆ m_elementsize

int blender::compositor::RenderLayersProg::m_elementsize
protected

Definition at line 63 of file COM_RenderLayersProg.h.

Referenced by doInterpolation(), executePixelSampled(), and RenderLayersProg().

◆ m_inputBuffer

float* blender::compositor::RenderLayersProg::m_inputBuffer
protected

cached instance to the float buffer inside the layer

Definition at line 56 of file COM_RenderLayersProg.h.

Referenced by deinitExecution(), doInterpolation(), executePixelSampled(), getInputBuffer(), initExecution(), and RenderLayersProg().

◆ m_layerId

short blender::compositor::RenderLayersProg::m_layerId
protected

layerId of the layer where this operation needs to get its data from

Definition at line 46 of file COM_RenderLayersProg.h.

Referenced by getLayerId().

◆ m_passName

std::string blender::compositor::RenderLayersProg::m_passName
protected

Render-pass where this operation needs to get its data from.

Definition at line 61 of file COM_RenderLayersProg.h.

Referenced by getMetaData(), and initExecution().

◆ m_rd

const RenderData* blender::compositor::RenderLayersProg::m_rd
protected

render data used for active rendering

Definition at line 68 of file COM_RenderLayersProg.h.

Referenced by executePixelSampled(), and RenderLayersProg().

◆ m_scene

Scene* blender::compositor::RenderLayersProg::m_scene
protected

Reference to the scene object.

Definition at line 41 of file COM_RenderLayersProg.h.

Referenced by getScene().

◆ m_viewName

const char* blender::compositor::RenderLayersProg::m_viewName
protected

viewName of the view to use (unless another view is specified by the node

Definition at line 51 of file COM_RenderLayersProg.h.

Referenced by getViewName().


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