Changeset View
Changeset View
Standalone View
Standalone View
source/blender/compositor/operations/COM_GaussianBokehBlurOperation.cpp
| Context not available. | |||||
| void GaussianBokehBlurOperation::executePixel(float output[4], int x, int y, void *data) | void GaussianBokehBlurOperation::executePixel(float output[4], int x, int y, void *data) | ||||
| { | { | ||||
| MemoryBuffer *inputBuffer = (MemoryBuffer *)data; | |||||
| float *buffer = inputBuffer->getBuffer(); | |||||
| int bufferwidth = inputBuffer->getWidth(); | |||||
| int bufferstartx = inputBuffer->getRect()->xmin; | |||||
| int bufferstarty = inputBuffer->getRect()->ymin; | |||||
| if ((float)this->m_data->sizex < 1.0 || (float)this->m_data->sizey < 1.0 || (float)this->m_size == 0.0) { | |||||
| // copy out with no blur | |||||
| int bufferindex = ((x - bufferstartx) * 4) + ((y - bufferstarty) * 4 * bufferwidth); | |||||
| output[0] = (&buffer[bufferindex])[0]; | |||||
| output[1] = (&buffer[bufferindex])[1]; | |||||
| output[2] = (&buffer[bufferindex])[2]; | |||||
| output[3] = (&buffer[bufferindex])[3]; | |||||
| return; | |||||
| } | |||||
| float tempColor[4]; | float tempColor[4]; | ||||
| tempColor[0] = 0; | tempColor[0] = 0; | ||||
| tempColor[1] = 0; | tempColor[1] = 0; | ||||
| tempColor[2] = 0; | tempColor[2] = 0; | ||||
| tempColor[3] = 0; | tempColor[3] = 0; | ||||
| float multiplier_accum = 0; | float multiplier_accum = 0; | ||||
| MemoryBuffer *inputBuffer = (MemoryBuffer *)data; | |||||
| float *buffer = inputBuffer->getBuffer(); | |||||
| int bufferwidth = inputBuffer->getWidth(); | |||||
| int bufferstartx = inputBuffer->getRect()->xmin; | |||||
| int bufferstarty = inputBuffer->getRect()->ymin; | |||||
| int miny = y - this->m_rady; | int miny = y - this->m_rady; | ||||
| int maxy = y + this->m_rady; | int maxy = y + this->m_rady; | ||||
| int minx = x - this->m_radx; | int minx = x - this->m_radx; | ||||
| int maxx = x + this->m_radx; | int maxx = x + this->m_radx; | ||||
| miny = max(miny, inputBuffer->getRect()->ymin); | miny = max(miny, inputBuffer->getRect()->ymin); | ||||
| minx = max(minx, inputBuffer->getRect()->xmin); | minx = max(minx, inputBuffer->getRect()->xmin); | ||||
| maxy = min(maxy, inputBuffer->getRect()->ymax); | maxy = min(maxy, inputBuffer->getRect()->ymax); | ||||
| Context not available. | |||||