mirror of
https://github.com/brl/mutter.git
synced 2025-02-23 16:34:10 +00:00
[cogl-color] Adds a cogl_color_equal() function
CoglColors shouldn't be compared using memcmp since they may contain uninitialized padding bytes. The prototype is also suitable for passing to g_hash_table_new as the key_equal_func. _cogl_pango_display_list_add_texture now uses this instead of memcmp.
This commit is contained in:
parent
827798233a
commit
7b85da8b28
16
cogl-color.h
16
cogl-color.h
@ -240,6 +240,22 @@ float cogl_color_get_alpha (const CoglColor *color);
|
|||||||
*/
|
*/
|
||||||
void cogl_color_premultiply (CoglColor *color);
|
void cogl_color_premultiply (CoglColor *color);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cogl_color_equal:
|
||||||
|
* @v1: a #CoglColor
|
||||||
|
* @v2: a #CoglColor
|
||||||
|
*
|
||||||
|
* Compares two #CoglColor<!-- -->s and checks if they are the same.
|
||||||
|
*
|
||||||
|
* This function can be passed to g_hash_table_new() as the @key_equal_func
|
||||||
|
* parameter, when using #CoglColor<!-- -->s as keys in a #GHashTable.
|
||||||
|
*
|
||||||
|
* Return value: %TRUE if the two colors are the same.
|
||||||
|
*
|
||||||
|
* Since: 1.0
|
||||||
|
*/
|
||||||
|
gboolean cogl_color_equal (gconstpointer v1, gconstpointer v2);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __COGL_COLOR_H__ */
|
#endif /* __COGL_COLOR_H__ */
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#include "cogl.h"
|
#include "cogl.h"
|
||||||
#include "cogl-color.h"
|
#include "cogl-color.h"
|
||||||
#include "cogl-fixed.h"
|
#include "cogl-fixed.h"
|
||||||
@ -184,3 +186,16 @@ cogl_set_source_color4f (float red,
|
|||||||
cogl_color_set_from_4f (&c, red, green, blue, alpha);
|
cogl_color_set_from_4f (&c, red, green, blue, alpha);
|
||||||
cogl_set_source_color (&c);
|
cogl_set_source_color (&c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
cogl_color_equal (gconstpointer v1, gconstpointer v2)
|
||||||
|
{
|
||||||
|
const guint32 *c1 = v1, *c2 = v2;
|
||||||
|
|
||||||
|
g_return_val_if_fail (v1 != NULL, FALSE);
|
||||||
|
g_return_val_if_fail (v2 != NULL, FALSE);
|
||||||
|
|
||||||
|
/* XXX: We don't compare the padding */
|
||||||
|
return *c1 == *c2 ? TRUE : FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user