18 float input_color1[4];
19 float input_over_color[4];
26 if (input_over_color[3] <= 0.0f) {
29 else if (value[0] == 1.0f && input_over_color[3] >= 1.0f) {
33 float premul = value[0] * input_over_color[3];
34 float mul = 1.0f - premul;
36 output[0] = (
mul * input_color1[0]) + premul * input_over_color[0];
37 output[1] = (
mul * input_color1[1]) + premul * input_over_color[1];
38 output[2] = (
mul * input_color1[2]) + premul * input_over_color[2];
39 output[3] = (
mul * input_color1[3]) + value[0] * input_over_color[3];
46 const float *color1 = p.
color1;
47 const float *over_color = p.
color2;
48 const float value = *p.
value;
50 if (over_color[3] <= 0.0f) {
53 else if (value == 1.0f && over_color[3] >= 1.0f) {
57 const float premul = value * over_color[3];
58 const float mul = 1.0f - premul;
60 p.
out[0] = (
mul * color1[0]) + premul * over_color[0];
61 p.
out[1] = (
mul * color1[1]) + premul * over_color[1];
62 p.
out[2] = (
mul * color1[2]) + premul * over_color[2];
63 p.
out[3] = (
mul * color1[3]) + value * over_color[3];
MINLINE void copy_v4_v4(float r[4], const float a[4])
_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
static void mul(btAlignedObjectArray< T > &items, const Q &value)
void execute_pixel_sampled(float output[4], float x, float y, PixelSampler sampler) override
void update_memory_buffer_row(PixelCursor &p) override
SocketReader * input_color2_operation_
SocketReader * input_color1_operation_
SocketReader * input_value_operation_
NodeOperationFlags flags_
void read_sampled(float result[4], float x, float y, PixelSampler sampler)
depth_tx sampler(1, ImageType::FLOAT_2D, "combined_tx") .sampler(2
ccl_global KernelShaderEvalInput ccl_global float * output