static void eyedropper_color_sample_accum(bContext *C, Eyedropper *eye, int mx, int my) { float col[3]; eyedropper_color_sample_fl(C, eye, mx, my, col); /* delay linear conversion */ add_v3_v3(eye->accum_col, col); eye->accum_tot++; }
static void eyedropper_colorband_sample_point(bContext *C, EyedropperColorband *eye, int mx, int my) { if (eye->last_x != mx || eye->last_y != my) { float col[4]; col[3] = 1.0f; /* TODO: sample alpha */ eyedropper_color_sample_fl(C, mx, my, col); if (eye->color_buffer_len + 1 == eye->color_buffer_alloc) { eye->color_buffer_alloc *= 2; eye->color_buffer = MEM_reallocN(eye->color_buffer, sizeof(*eye->color_buffer) * eye->color_buffer_alloc); } copy_v4_v4(eye->color_buffer[eye->color_buffer_len], col); eye->color_buffer_len += 1; eye->last_x = mx; eye->last_y = my; } }
/* single point sample & set */ static void eyedropper_color_sample(bContext *C, Eyedropper *eye, int mx, int my) { float col[3]; eyedropper_color_sample_fl(C, eye, mx, my, col); eyedropper_color_set(C, eye, col); }