40 class ReadBufferOperation;
41 class WriteBufferOperation;
127 this->m_resizeMode = resizeMode;
131 return this->m_resizeMode;
138 #ifdef WITH_CXX_GUARDEDALLOC
139 MEM_CXX_CLASS_ALLOC_FUNCS(
"COM:NodeOperation")
171 #ifdef WITH_CXX_GUARDEDALLOC
172 MEM_CXX_CLASS_ALLOC_FUNCS(
"COM:NodeOperation")
269 unsigned int m_resolutionInputSocketIndex;
335 return m_inputs.
size();
339 return m_outputs.
size();
351 unsigned int preferredResolution[2]);
375 this->m_btree =
tree;
429 std::list<cl_mem> * ,
430 std::list<cl_kernel> * )
442 this->m_width = resolution[0];
443 this->m_height = resolution[1];
537 return std::unique_ptr<MetaData>();
548 this->m_width =
width;
615 float [4],
float ,
float ,
float [2],
float [2])
622 #ifdef WITH_CXX_GUARDEDALLOC
623 MEM_CXX_CLASS_ALLOC_FUNCS(
"COM:NodeOperation")
pthread_mutex_t ThreadMutex
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
a MemoryBuffer contains access to the data of a chunk
void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
determine the resolution of this data going through this socket
DataType getDataType() const
NodeOperationOutput(NodeOperation *op, DataType datatype)
NodeOperation & getOperation() const
NodeOperation contains calculation logic.
virtual void * initializeTileData(rcti *)
virtual eCompositorPriority getRenderPriority() const
get the render priority of this node.
void set_name(const std::string name)
virtual void initExecution()
void readSampled(float result[4], float x, float y, PixelSampler sampler)
void set_id(const int id)
NodeOperationInput * getInputSocket(unsigned int index)
unsigned int getHeight() const
virtual void executeRegion(rcti *, unsigned int)
when a chunk is executed by a CPUDevice, this method is called
void addInputSocket(DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
NodeOperation * getInputOperation(unsigned int inputSocketindex)
virtual MemoryBuffer * getInputMemoryBuffer(MemoryBuffer **)
void read(float result[4], int x, int y, void *chunkData)
virtual void executePixelSampled(float[4], float, float, PixelSampler)
calculate a single pixel
virtual std::unique_ptr< MetaData > getMetaData()
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 GPUDevic...
const NodeOperationFlags get_flags() const
unsigned int getNumberOfInputSockets() const
virtual void deinitExecution()
virtual void executePixel(float output[4], int x, int y, void *)
calculate a single pixel
void addOutputSocket(DataType datatype)
unsigned int getNumberOfOutputSockets() const
void setComplex(bool complex)
set whether this operation is complex
unsigned int getWidth() const
virtual void deinitializeTileData(rcti *, void *)
void setResolutionInputSocketIndex(unsigned int index)
set the index of the input socket that will determine the resolution of this operation
virtual void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
determine the resolution of this node
virtual bool isOutputOperation(bool) const
isOutputOperation determines whether this operation is an output of the ExecutionSystem during render...
void setWidth(unsigned int width)
virtual void executePixelFiltered(float[4], float, float, float[2], float[2])
calculate a single pixel using an EWA filter
void readFiltered(float result[4], float x, float y, float dx[2], float dy[2])
void setHeight(unsigned int height)
SocketReader * getInputSocketReader(unsigned int inputSocketindex)
virtual bool isActiveViewerOutput() const
is this operation the active viewer output user can select an ViewerNode to be active (the result of ...
NodeOperationOutput * getOutputSocket(unsigned int index=0)
const std::string get_name() const
void setbNodeTree(const bNodeTree *tree)
virtual bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output)
virtual void executeOpenCLRegion(OpenCLDevice *, rcti *, unsigned int, MemoryBuffer **, MemoryBuffer *)
when a chunk is executed by an OpenCLDevice, this method is called
void setResolution(unsigned int resolution[2])
set the resolution
device representing an GPU OpenCL device. an instance of this class represents a single cl_device
eCompositorPriority
Possible priority settings.
@ Low
Low quality setting.
DataType
possible data types for sockets
ResizeMode
Resize modes of inputsockets How are the input and working resolutions matched.
@ FitAny
Fit the width or the height of the input image to the width or height of the working area of the node...
@ FitWidth
Fit the width of the input image to the width of the working area of the node.
@ Center
Center the input image to the center of the working area of the node, no resizing occurs.
@ None
The bottom left of the input image is the bottom left of the working area of the node,...
@ FitHeight
Fit the height of the input image to the height of the working area of the node.
@ Stretch
Fit the width and the height of the input image to the width and height of the working area of the no...
static constexpr unsigned int RESOLUTION_INPUT_ANY
NodeOperation SocketReader
std::ostream & operator<<(std::ostream &os, const eCompositorPriority &priority)
int(* test_break)(void *)
void(* update_draw)(void *)
bool is_write_buffer_operation
bool use_datatype_conversion
bool is_preview_operation
bool is_read_buffer_operation