예제 #1
0
static ALLEGRO_COLOR alpha_color(ALLEGRO_COLOR color, float alpha)
{
	float r, g, b;

	al_unmap_rgb_f(color, &r, &g, &b);
	return al_map_rgba_f(r * alpha, g * alpha, b * alpha, alpha);
}
예제 #2
0
void shal_unmap_rgb_f(float color_r,
                      float color_g,
                      float color_b,
                      float color_a,
                      float * r,
                      float * g,
                      float * b)
{
    ALLEGRO_COLOR color;
    color.r = color_r;
    color.g = color_g;
    color.b = color_b;
    color.a = color_a;
    return al_unmap_rgb_f(color, r, g, b);
}
예제 #3
0
static mrb_value
color_unmap_rgb_f(mrb_state *mrb, mrb_value self)
{
  ALLEGRO_COLOR *c;
  float r;
  float g;
  float b;
  mrb_value ary;
  c = mrb_data_get_ptr(mrb, self, &mrbal_color_data_type);
  al_unmap_rgb_f(*c, &r, &g, &b);
  ary = mrb_ary_new_capa(mrb, 3);
  mrb_ary_push(mrb, ary, mrb_float_value(mrb, r));
  mrb_ary_push(mrb, ary, mrb_float_value(mrb, g));
  mrb_ary_push(mrb, ary, mrb_float_value(mrb, b));
  return ary;
}