28 this->m_single_value =
false;
30 this->m_buffer =
nullptr;
40 unsigned int preferredResolution[2])
42 if (this->m_memoryProxy !=
nullptr) {
100 float output[4],
float x,
float y,
float dx[2],
float dy[2])
102 if (m_single_value) {
107 const float uv[2] = {
x,
y};
108 const float deriv[2][2] = {{dx[0], dx[1]}, {dy[0], dy[1]}};
117 if (
this == readOperation) {
126 if (this->m_memoryProxy !=
nullptr) {
void BLI_rcti_init(struct rcti *rect, int xmin, int xmax, int ymin, int ymax)
_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
void setResolution(unsigned int resolution[2])
set the resolution of this executiongroup
void read(float *result, int x, int y, MemoryBufferExtend extend_x=MemoryBufferExtend::Clip, MemoryBufferExtend extend_y=MemoryBufferExtend::Clip)
void readEWA(float *result, const float uv[2], const float derivatives[2][2])
void readBilinear(float *result, float x, float y, MemoryBufferExtend extend_x=MemoryBufferExtend::Clip, MemoryBufferExtend extend_y=MemoryBufferExtend::Clip)
ExecutionGroup * getExecutor() const
get the ExecutionGroup that can be scheduled to calculate a certain chunk.
MemoryBuffer * getBuffer()
get the allocated memory
WriteBufferOperation * getWriteBufferOperation() const
get the WriteBufferOperation that is responsible for writing to this MemoryProxy
unsigned int getHeight() const
void addOutputSocket(DataType datatype)
unsigned int getWidth() const
void setWidth(unsigned int width)
void setHeight(unsigned int height)
void setResolution(unsigned int resolution[2])
set the resolution
void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]) override
determine the resolution of this node
void executePixelExtend(float output[4], float x, float y, PixelSampler sampler, MemoryBufferExtend extend_x, MemoryBufferExtend extend_y)
void executePixelFiltered(float output[4], float x, float y, float dx[2], float dy[2]) override
calculate a single pixel using an EWA filter
void executePixelSampled(float output[4], float x, float y, PixelSampler sampler) override
calculate a single pixel
MemoryProxy * getMemoryProxy() const
void readResolutionFromWriteBuffer()
bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output) override
void updateMemoryBuffer()
void * initializeTileData(rcti *rect) override
ReadBufferOperation(DataType datatype)
NodeOperation to write to a tile.
bool isSingleValue() const
void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]) override
determine the resolution of this node
DataType
possible data types for sockets
bool is_read_buffer_operation