diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2012-05-21 14:20:30 +0400 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2012-05-21 14:20:30 +0400 |
commit | 998a850f9f2747065ffe379097907232a85cd2d5 (patch) | |
tree | a4b86c8a1f10e1c39e7557edad82d2a55574ea62 /source/blender/compositor/operations/COM_DilateErodeOperation.h | |
parent | 14e4ad930209a3b861b5b514fbd23b39a7d16e94 (diff) |
Added switch in dilate/erode between old (Step) and new (Distance)
algorithm
Connected the Glare Fog Flow to use Fast Gaussian in stead of Bokeh blur
Diffstat (limited to 'source/blender/compositor/operations/COM_DilateErodeOperation.h')
-rw-r--r-- | source/blender/compositor/operations/COM_DilateErodeOperation.h | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/source/blender/compositor/operations/COM_DilateErodeOperation.h b/source/blender/compositor/operations/COM_DilateErodeOperation.h index 102d1165bc8..7f01ea94494 100644 --- a/source/blender/compositor/operations/COM_DilateErodeOperation.h +++ b/source/blender/compositor/operations/COM_DilateErodeOperation.h @@ -25,7 +25,7 @@ #include "COM_NodeOperation.h" -class DilateErodeOperation : public NodeOperation { +class DilateErodeDistanceOperation : public NodeOperation { private: /** * Cached reference to the inputProgram @@ -42,7 +42,7 @@ private: */ int scope; public: - DilateErodeOperation(); + DilateErodeDistanceOperation(); /** * the inner loop of this program @@ -67,4 +67,46 @@ public: bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output); }; + +class DilateStepOperation : public NodeOperation { +protected: + /** + * Cached reference to the inputProgram + */ + SocketReader * inputProgram; + + int iterations; + + float *cached_buffer; +public: + DilateStepOperation(); + + /** + * the inner loop of this program + */ + void executePixel(float *color, int x, int y, MemoryBuffer *inputBuffers[], void *data); + + /** + * Initialize the execution + */ + void initExecution(); + + void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers); + /** + * Deinitialize the execution + */ + void deinitExecution(); + + void setIterations(int iterations) {this->iterations = iterations;} + + bool determineDependingAreaOfInterest(rcti *input, ReadBufferOperation *readOperation, rcti *output); +}; + +class ErodeStepOperation : public DilateStepOperation { +public: + ErodeStepOperation(); + + void *initializeTileData(rcti *rect, MemoryBuffer **memoryBuffers); +}; + #endif |