示例#1
0
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;
	}
}
示例#3
0
/* 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);
}