summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-10-17 00:32:25 -0700
committerBenjamin Otte <otte@redhat.com>2011-10-17 00:32:25 -0700
commitb578d2982a32a7a28cbc1f9a3f808c15afbffc2c (patch)
tree659ca4ce7325e3582407ad9bfa6b006c4357e89a
parent5bffe9f2aebdbc3007c826fafcca48ca70439af4 (diff)
geom: Add game_color_to_gray()
Returns the gray value of a color. Alpha is ignored.
-rw-r--r--libgame/game-geom-basics.c10
-rw-r--r--libgame/game-geom-basics.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/libgame/game-geom-basics.c b/libgame/game-geom-basics.c
index 880084f..4448521 100644
--- a/libgame/game-geom-basics.c
+++ b/libgame/game-geom-basics.c
@@ -325,6 +325,16 @@ hls_to_rgb (GameColor *dest, const GameHLS *src)
}
}
+double
+game_color_to_gray (const GameColor *color)
+{
+ g_return_val_if_fail (color != NULL, 0.5);
+
+ return color->r * 0.298828125
+ + color->g * 0.587890625
+ + color->b * 0.11328125;
+}
+
/**
* game_color_shade:
* @dest: result of shading
diff --git a/libgame/game-geom-basics.h b/libgame/game-geom-basics.h
index 57d8751..49a2d1a 100644
--- a/libgame/game-geom-basics.h
+++ b/libgame/game-geom-basics.h
@@ -102,6 +102,7 @@ GType game_color_get_type (void) G_GNUC_CONST;
char * game_color_to_string (const GameColor * color);
gboolean game_color_from_string (GameColor * color,
const char * string);
+double game_color_to_gray (const GameColor * color);
void game_color_shade (GameColor * dest,
const GameColor * src,
double factor);