diff options
author | Robert Bragg <robert@linux.intel.com> | 2011-10-12 22:31:12 +0100 |
---|---|---|
committer | Robert Bragg <robert@linux.intel.com> | 2011-11-01 12:03:01 +0000 |
commit | 426c8b8f41626527bcf764bc275d46ffe8c2e84b (patch) | |
tree | 1516ef2cacb1d7f4379154694b5dcf5ac50f4b1a /cogl/cogl-buffer.c | |
parent | c86f698eb9088db0d3dd32497d29a56a9e144143 (diff) | |
download | cogl-426c8b8f41626527bcf764bc275d46ffe8c2e84b.tar.gz |
features: Support more than 32 features!
Currently features are represented as bits in a 32bit mask so we
obviously can't have more than 32 features with that approach. The new
approach is to use the COGL_FLAGS_ macros which lets us handle bitmasks
without a size limit and we change the public api to accept individual
feature enums instead of a mask. This way there is no limit on the
number of features we can add to Cogl.
Instead of using cogl_features_available() there is a new
cogl_has_feature() function and for checking multiple features there is
cogl_has_features() which takes a zero terminated vararg list of
features.
In addition to being able to check for individual features this also
adds a way to query all the features currently available via
cogl_foreach_feature() which will call a callback for each feature.
Since the new functions take an explicit context pointer there is also
no longer any ambiguity over when users can first start to query
features.
Reviewed-by: Neil Roberts <neil@linux.intel.com>
Diffstat (limited to 'cogl/cogl-buffer.c')
-rw-r--r-- | cogl/cogl-buffer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/cogl/cogl-buffer.c b/cogl/cogl-buffer.c index 7a6c77aa..9fff90a5 100644 --- a/cogl/cogl-buffer.c +++ b/cogl/cogl-buffer.c @@ -134,10 +134,10 @@ bo_map (CoglBuffer *buffer, _COGL_GET_CONTEXT (ctx, NULL); if ((access & COGL_BUFFER_ACCESS_READ) && - !cogl_features_available (COGL_FEATURE_MAP_BUFFER_FOR_READ)) + !cogl_has_feature (ctx, COGL_FEATURE_ID_MAP_BUFFER_FOR_READ)) return NULL; if ((access & COGL_BUFFER_ACCESS_WRITE) && - !cogl_features_available (COGL_FEATURE_MAP_BUFFER_FOR_WRITE)) + !cogl_has_feature (ctx, COGL_FEATURE_ID_MAP_BUFFER_FOR_WRITE)) return NULL; target = buffer->last_target; |