aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/mesa/drivers/dri/common/utils.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-11-08 13:12:15 +0100
committermarha <marha@users.sourceforge.net>2013-11-08 13:12:15 +0100
commitf707ea3ce065f0ce40f586c40283fab42059b485 (patch)
tree055a5ccdecaec105365d1de9a90d7d6b38f257fb /mesalib/src/mesa/drivers/dri/common/utils.c
parentc8483dc2831dc37d93a36804022f6b064f5962ea (diff)
parent09e94a8e392e8fe6fd89ddefbf3897a92e525b5b (diff)
downloadvcxsrv-f707ea3ce065f0ce40f586c40283fab42059b485.tar.gz
vcxsrv-f707ea3ce065f0ce40f586c40283fab42059b485.tar.bz2
vcxsrv-f707ea3ce065f0ce40f586c40283fab42059b485.zip
Merge remote-tracking branch 'origin/released'
* origin/released: Added presentproto-1.0 libxtrans libxcb xcb-proto mesa git update 8 nov 2013 Conflicts: X11/xtrans/Xtransint.h X11/xtrans/Xtranssock.c libxcb/src/.gitignore mesalib/src/mesa/drivers/dri/common/dri_util.c
Diffstat (limited to 'mesalib/src/mesa/drivers/dri/common/utils.c')
-rw-r--r--mesalib/src/mesa/drivers/dri/common/utils.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/mesalib/src/mesa/drivers/dri/common/utils.c b/mesalib/src/mesa/drivers/dri/common/utils.c
index f3780d9b6..b30fca903 100644
--- a/mesalib/src/mesa/drivers/dri/common/utils.c
+++ b/mesalib/src/mesa/drivers/dri/common/utils.c
@@ -37,6 +37,7 @@
#include "main/cpuinfo.h"
#include "main/extensions.h"
#include "utils.h"
+#include "dri_util.h"
unsigned
@@ -477,3 +478,66 @@ driIndexConfigAttrib(const __DRIconfig *config, int index,
return GL_FALSE;
}
+
+/**
+ * Implement queries for values that are common across all Mesa drivers
+ *
+ * Currently only the following queries are supported by this function:
+ *
+ * - \c __DRI2_RENDERER_VERSION
+ * - \c __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION
+ * - \c __DRI2_RENDERER_OPENGL_COMPATIBLITY_PROFILE_VERSION
+ * - \c __DRI2_RENDERER_ES_PROFILE_VERSION
+ * - \c __DRI2_RENDERER_ES2_PROFILE_VERSION
+ *
+ * \returns
+ * Zero if a recognized value of \c param is supplied, -1 otherwise.
+ */
+int
+driQueryRendererIntegerCommon(__DRIscreen *psp, int param, int *value)
+{
+ switch (param) {
+ case __DRI2_RENDERER_VERSION: {
+ static const char *const ver = PACKAGE_VERSION;
+ char *endptr;
+ int v[3];
+
+ v[0] = strtol(ver, &endptr, 10);
+ assert(endptr[0] == '.');
+ if (endptr[0] != '.')
+ return -1;
+
+ v[1] = strtol(endptr + 1, &endptr, 10);
+ assert(endptr[0] == '.');
+ if (endptr[0] != '.')
+ return -1;
+
+ v[2] = strtol(endptr + 1, &endptr, 10);
+
+ value[0] = v[0];
+ value[1] = v[1];
+ value[2] = v[2];
+ return 0;
+ }
+ case __DRI2_RENDERER_OPENGL_CORE_PROFILE_VERSION:
+ value[0] = psp->max_gl_core_version / 10;
+ value[1] = psp->max_gl_core_version % 10;
+ return 0;
+ case __DRI2_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION:
+ value[0] = psp->max_gl_compat_version / 10;
+ value[1] = psp->max_gl_compat_version % 10;
+ return 0;
+ case __DRI2_RENDERER_OPENGL_ES_PROFILE_VERSION:
+ value[0] = psp->max_gl_es1_version / 10;
+ value[1] = psp->max_gl_es1_version % 10;
+ return 0;
+ case __DRI2_RENDERER_OPENGL_ES2_PROFILE_VERSION:
+ value[0] = psp->max_gl_es2_version / 10;
+ value[1] = psp->max_gl_es2_version % 10;
+ return 0;
+ default:
+ break;
+ }
+
+ return -1;
+}