drm-formats: add weston_drm_format_array_count_pairs()
It simply returns the number of format/modifier pairs in the array. This will be useful for the next commits, in which we add support for dma-buf feedback. Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
parent
f9787ba482
commit
60c7fee48d
|
@ -184,6 +184,24 @@ weston_drm_format_array_find_format(const struct weston_drm_format_array *format
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Counts the number of format/modifier pairs in a weston_drm_format_array
|
||||||
|
*
|
||||||
|
* @param formats The weston_drm_format_array
|
||||||
|
* @return The number of format/modifier pairs in the array
|
||||||
|
*/
|
||||||
|
WL_EXPORT unsigned int
|
||||||
|
weston_drm_format_array_count_pairs(const struct weston_drm_format_array *formats)
|
||||||
|
{
|
||||||
|
struct weston_drm_format *fmt;
|
||||||
|
unsigned int num_pairs = 0;
|
||||||
|
|
||||||
|
wl_array_for_each(fmt, &formats->arr)
|
||||||
|
num_pairs += fmt->modifiers.size / sizeof(uint64_t);
|
||||||
|
|
||||||
|
return num_pairs;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare the content of two weston_drm_format_array
|
* Compare the content of two weston_drm_format_array
|
||||||
*
|
*
|
||||||
|
|
|
@ -358,6 +358,9 @@ struct weston_drm_format *
|
||||||
weston_drm_format_array_find_format(const struct weston_drm_format_array *formats,
|
weston_drm_format_array_find_format(const struct weston_drm_format_array *formats,
|
||||||
uint32_t format);
|
uint32_t format);
|
||||||
|
|
||||||
|
unsigned int
|
||||||
|
weston_drm_format_array_count_pairs(const struct weston_drm_format_array *formats);
|
||||||
|
|
||||||
bool
|
bool
|
||||||
weston_drm_format_array_equal(const struct weston_drm_format_array *formats_A,
|
weston_drm_format_array_equal(const struct weston_drm_format_array *formats_A,
|
||||||
const struct weston_drm_format_array *formats_B);
|
const struct weston_drm_format_array *formats_B);
|
||||||
|
|
|
@ -81,6 +81,8 @@ TEST(basic_operations)
|
||||||
|
|
||||||
weston_drm_format_array_init(&format_array);
|
weston_drm_format_array_init(&format_array);
|
||||||
|
|
||||||
|
assert(weston_drm_format_array_count_pairs(&format_array) == 0);
|
||||||
|
|
||||||
ADD_FORMATS_AND_MODS(&format_array, formats, modifiers);
|
ADD_FORMATS_AND_MODS(&format_array, formats, modifiers);
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_LENGTH(formats); i++) {
|
for (i = 0; i < ARRAY_LENGTH(formats); i++) {
|
||||||
|
@ -90,6 +92,9 @@ TEST(basic_operations)
|
||||||
assert(weston_drm_format_has_modifier(fmt, modifiers[j]));
|
assert(weston_drm_format_has_modifier(fmt, modifiers[j]));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assert(weston_drm_format_array_count_pairs(&format_array) ==
|
||||||
|
ARRAY_LENGTH(formats) * ARRAY_LENGTH(modifiers));
|
||||||
|
|
||||||
weston_drm_format_array_fini(&format_array);
|
weston_drm_format_array_fini(&format_array);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue