70 float *gausstab,
sum, val;
75 gausstab = (
float *)
MEM_mallocN(
sizeof(
float) * n, __func__);
78 float fac = (rad > 0.0f ? 1.0f / rad : 0.0f);
82 gausstab[i +
size] = val;
86 for (i = 0; i < n; i++) {
94 __m128 *BlurBaseOperation::convert_gausstab_sse(
const float *gausstab,
int size)
97 __m128 *gausstab_sse = (__m128 *)
MEM_mallocN_aligned(
sizeof(__m128) * n, 16,
"gausstab sse");
98 for (
int i = 0; i < n; i++) {
99 gausstab_sse[i] = _mm_set1_ps(gausstab[i]);
109 float *dist_fac_invert, val;
114 dist_fac_invert = (
float *)
MEM_mallocN(
sizeof(
float) * n, __func__);
116 float fac = (rad > 0.0f ? 1.0f / rad : 0.0f);
118 val = 1.0f -
fabsf((
float)i * fac);
124 val = (3.0f * val * val - 2.0f * val * val * val);
127 val =
sqrtf(2.0f * val - val * val);
136 val = val * (2.0f - val);
151 dist_fac_invert[i +
size] = val;
154 return dist_fac_invert;
179 unsigned int preferredResolution[2])
MINLINE int round_fl_to_int(float a)
#define CMP_NODE_BLUR_ASPECT_X
#define CMP_NODE_BLUR_ASPECT_Y
#define CMP_NODE_BLUR_ASPECT_NONE
Read Guarded memory(de)allocation.
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
static T sum(const btAlignedObjectArray< T > &items)
void deinitExecution() override
float * make_gausstab(float rad, int size)
void initExecution() override
SocketReader * m_inputSize
void setData(const NodeBlurData *data)
SocketReader * m_inputProgram
void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2]) override
determine the resolution of this node
BlurBaseOperation(DataType data_type)
float * make_dist_fac_inverse(float rad, int size, int falloff)
void readSampled(float result[4], float x, float y, PixelSampler sampler)
unsigned int getHeight() const
void addInputSocket(DataType datatype, ResizeMode resize_mode=ResizeMode::Center)
void addOutputSocket(DataType datatype)
unsigned int getWidth() const
virtual void determineResolution(unsigned int resolution[2], unsigned int preferredResolution[2])
determine the resolution of this node
SocketReader * getInputSocketReader(unsigned int inputSocketindex)
void initExecution(QualityHelper helper)
DataType
possible data types for sockets
float RE_filter_value(int type, float x)
void *(* MEM_mallocN_aligned)(size_t len, size_t alignment, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)