aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xquartz/GL/capabilities.c
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xquartz/GL/capabilities.c')
-rw-r--r--xorg-server/hw/xquartz/GL/capabilities.c57
1 files changed, 18 insertions, 39 deletions
diff --git a/xorg-server/hw/xquartz/GL/capabilities.c b/xorg-server/hw/xquartz/GL/capabilities.c
index bc3966f4b..99b9eae61 100644
--- a/xorg-server/hw/xquartz/GL/capabilities.c
+++ b/xorg-server/hw/xquartz/GL/capabilities.c
@@ -425,7 +425,7 @@ static CGLError handleRendererDescriptions(CGLRendererInfoObj info, GLint r,
handleAccumulationModes(c, flags);
- return 0;
+ return kCGLNoError;
}
static void initCapabilities(struct glCapabilities *cap) {
@@ -491,56 +491,36 @@ void freeGlCapabilities(struct glCapabilities *cap) {
cap->configurations = NULL;
}
-enum { MAX_DISPLAYS = 3 };
-
/*Return true if an error occured. */
bool getGlCapabilities(struct glCapabilities *cap) {
- CGDirectDisplayID dspys[MAX_DISPLAYS];
- CGDisplayErr err;
- CGOpenGLDisplayMask displayMask;
- CGDisplayCount i, displayCount = 0;
+ CGLRendererInfoObj info;
+ CGLError err;
+ GLint numRenderers = 0, r;
initCapabilities(cap);
-
- err = CGGetActiveDisplayList(MAX_DISPLAYS, dspys, &displayCount);
- if(err) {
- fprintf(stderr, "CGGetActiveDisplayList error: %s\n", CGLErrorString(err));
- return true;
- }
-
- for(i = 0; i < displayCount; ++i) {
- displayMask = CGDisplayIDToOpenGLDisplayMask(dspys[i]);
-
- CGLRendererInfoObj info;
- GLint numRenderers = 0, r, renderCount = 0;
-
- err = CGLQueryRendererInfo(displayMask, &info, &numRenderers);
- if(err) {
+ err = CGLQueryRendererInfo((GLuint)-1, &info, &numRenderers);
+ if(err) {
fprintf(stderr, "CGLQueryRendererInfo error: %s\n", CGLErrorString(err));
- fprintf(stderr, "trying to continue...\n");
- continue;
+ return err;
}
-
- CGLDescribeRenderer(info, 0, kCGLRPRendererCount, &renderCount);
- for(r = 0; r < renderCount; ++r) {
- CGLError derr;
+ for(r = 0; r < numRenderers; r++) {
struct glCapabilitiesConfig tmpconf, *conf;
initConfig(&tmpconf);
- derr = handleRendererDescriptions(info, r, &tmpconf);
- if(derr) {
- fprintf(stderr, "error: %s\n", CGLErrorString(derr));
- fprintf(stderr, "trying to continue...\n");
- continue;
+ err = handleRendererDescriptions(info, r, &tmpconf);
+ if(err) {
+ fprintf(stderr, "handleRendererDescriptions returned error: %s\n", CGLErrorString(err));
+ fprintf(stderr, "trying to continue...\n");
+ continue;
}
conf = malloc(sizeof(*conf));
if(NULL == conf) {
- perror("malloc");
- abort();
+ perror("malloc");
+ abort();
}
/* Copy the struct. */
@@ -551,9 +531,8 @@ bool getGlCapabilities(struct glCapabilities *cap) {
cap->configurations = conf;
}
- CGLDestroyRendererInfo(info);
- }
-
+ CGLDestroyRendererInfo(info);
+
/* No error occured. We are done. */
- return false;
+ return kCGLNoError;
}