diff options
-rw-r--r-- | libgame/game-geom-basics.c | 10 | ||||
-rw-r--r-- | libgame/game-geom-basics.h | 1 |
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); |