On Thu, Jul 26, 2012 at 11:52 PM, Kenneth Graunke <kenn...@whitecape.org> wrote: > On 07/26/2012 05:54 PM, Jordan Justen wrote: >> On Thu, Jul 26, 2012 at 5:27 PM, Eric Anholt <e...@anholt.net> wrote: >>> As we get into supporting GL 3.x core, we come across more and more features >>> of the API that depend on the version number as opposed to just the >>> extension >>> list. This will let us more sanely do version checks than "(VersionMajor >>> == 3 >>> && VersionMinor >= 2) || VersionMajor >= 4". >>> --- >>> src/mesa/main/mtypes.h | 2 ++ >>> src/mesa/main/version.c | 6 ++++++ >>> 2 files changed, 8 insertions(+) >>> >>> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h >>> index 3d59dc6..23d32a6 100644 >>> --- a/src/mesa/main/mtypes.h >>> +++ b/src/mesa/main/mtypes.h >>> @@ -3427,6 +3427,8 @@ struct gl_context >>> >>> /** Version info */ >>> GLuint VersionMajor, VersionMinor; >>> + /** VersionMajor * 10 + VersionMinor, so 31 for GL 3.1. */ >>> + GLuint Version; >>> char *VersionString; >>> >>> /** \name State attribute stack (for glPush/PopAttrib) */ >>> diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c >>> index efaaf58..697758e 100644 >>> --- a/src/mesa/main/version.c >>> +++ b/src/mesa/main/version.c >>> @@ -223,6 +223,8 @@ compute_version(struct gl_context *ctx) >>> >>> override_version(ctx, &ctx->VersionMajor, &ctx->VersionMinor); >>> >>> + ctx->Version = ctx->VersionMajor * 10 + ctx->VersionMinor; >> >> How about a macro rather than coding the *10 everywhere? >> #define UINT_VERSION(major, minor) ((10*(major)) + (minor))
I'm not too happy with UINT_VERSION, so maybe GLVER could be a less verbose option. > Personally I like the major * 10 + minor version, as its clear what it > does. But I wouldn't object too strongly to a macro or inline function > either. I guess history would seem to indicate that a minor > 9 is unlikely, but is this guaranteed? Personally, I would prefer: if (ctx->Version < GLVER(major, minor)) over if (ctx->Version < major * 10 + minor) And, I would prefer: if (ctx->Version < GLVER(3, 1)) over if (ctx->Version < 31) > Also, I like Brian's idea of getting rid of VersionMajor and > VersionMinor. In almost all cases, the combined Version field is nicer > to work with (as this series demonstrates), and if we need major/minor, > extracting those is trivial. I almost always prefer to have one copy of > data, rather than two copies stored in different forms with code to > synchronize them. Agreed. > This series is: > Reviewed-by: Kenneth Graunke <kenn...@whitecape.org> Same here, Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev