These functions make it easier to compare against known OpenGL and OpenGLES versions since all known and expected future versions have a minor version <= 9.
For example, to check that the attrs struct has a version >= 3.2, use wcore_config_attrs_version_above_or_equals(attrs, 32) Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com> --- src/waffle/core/wcore_config_attrs.c | 48 ++++++++++++++++++++++++++++++++++++ src/waffle/core/wcore_config_attrs.h | 25 +++++++++++++++++++ 2 files changed, 73 insertions(+) diff --git a/src/waffle/core/wcore_config_attrs.c b/src/waffle/core/wcore_config_attrs.c index c4b37d9..0d27516 100644 --- a/src/waffle/core/wcore_config_attrs.c +++ b/src/waffle/core/wcore_config_attrs.c @@ -511,3 +511,51 @@ wcore_config_attrs_parse( return true; } + +bool +wcore_config_attrs_version_equals( + const struct wcore_config_attrs *attrs, + int merged_version) +{ + return + attrs->context_major_version == (merged_version / 10) && + attrs->context_minor_version == (merged_version % 10); +} + +bool +wcore_config_attrs_version_above( + const struct wcore_config_attrs *attrs, + int merged_version) +{ + return + attrs->context_major_version > (merged_version / 10) || + (attrs->context_major_version == (merged_version / 10) && + attrs->context_minor_version > (merged_version % 10)); +} + +bool +wcore_config_attrs_version_above_or_equals( + const struct wcore_config_attrs *attrs, + int merged_version) +{ + return + attrs->context_major_version > (merged_version / 10) || + (attrs->context_major_version == (merged_version / 10) && + attrs->context_minor_version >= (merged_version % 10)); +} + +bool +wcore_config_attrs_version_below( + const struct wcore_config_attrs *attrs, + int merged_version) +{ + return !wcore_config_attrs_version_above_or_equals(attrs, merged_version); +} + +bool +wcore_config_attrs_version_below_or_equals( + const struct wcore_config_attrs *attrs, + int merged_version) +{ + return !wcore_config_attrs_version_above(attrs, merged_version); +} diff --git a/src/waffle/core/wcore_config_attrs.h b/src/waffle/core/wcore_config_attrs.h index 4021115..b7ff1f6 100644 --- a/src/waffle/core/wcore_config_attrs.h +++ b/src/waffle/core/wcore_config_attrs.h @@ -60,3 +60,28 @@ bool wcore_config_attrs_parse( const int32_t waffle_attrib_list[], struct wcore_config_attrs *attrs); + +bool +wcore_config_attrs_version_equals( + const struct wcore_config_attrs *attrs, + int merged_version); + +bool +wcore_config_attrs_version_above( + const struct wcore_config_attrs *attrs, + int merged_version); + +bool +wcore_config_attrs_version_above_or_equals( + const struct wcore_config_attrs *attrs, + int merged_version); + +bool +wcore_config_attrs_version_below( + const struct wcore_config_attrs *attrs, + int merged_version); + +bool +wcore_config_attrs_version_below_or_equals( + const struct wcore_config_attrs *attrs, + int merged_version); -- 1.9.2 _______________________________________________ waffle mailing list waffle@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/waffle