Commit fe2b42f8 authored by Sam Lantinga's avatar Sam Lantinga

OpenGL hardware acceleration defaults on

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404319
parent abec9e44
...@@ -239,7 +239,7 @@ SDL_VideoInit(const char *driver_name, Uint32 flags) ...@@ -239,7 +239,7 @@ SDL_VideoInit(const char *driver_name, Uint32 flags)
_this->gl_config.multisamplebuffers = 0; _this->gl_config.multisamplebuffers = 0;
_this->gl_config.multisamplesamples = 0; _this->gl_config.multisamplesamples = 0;
_this->gl_config.retained_backing = 1; _this->gl_config.retained_backing = 1;
_this->gl_config.accelerated = -1; /* not known, don't set */ _this->gl_config.accelerated = 1;
_this->gl_config.major_version = 2; _this->gl_config.major_version = 2;
_this->gl_config.minor_version = 1; _this->gl_config.minor_version = 1;
...@@ -3274,7 +3274,7 @@ SDL_GL_GetAttribute(SDL_GLattr attr, int *value) ...@@ -3274,7 +3274,7 @@ SDL_GL_GetAttribute(SDL_GLattr attr, int *value)
case SDL_GL_ACCELERATED_VISUAL: case SDL_GL_ACCELERATED_VISUAL:
{ {
/* FIXME: How do we get this information? */ /* FIXME: How do we get this information? */
*value = (_this->gl_config.accelerated != 0); *value = _this->gl_config.accelerated;
return 0; return 0;
} }
default: default:
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#if SDL_VIDEO_OPENGL_CGL #if SDL_VIDEO_OPENGL_CGL
#include <OpenGL/CGLTypes.h> #include <OpenGL/CGLTypes.h>
#include <OpenGL/OpenGL.h> #include <OpenGL/OpenGL.h>
#include <OpenGL/CGLRenderers.h>
#include "SDL_loadso.h" #include "SDL_loadso.h"
#include "SDL_opengl.h" #include "SDL_opengl.h"
...@@ -132,8 +133,11 @@ Cocoa_GL_CreateContext(_THIS, SDL_Window * window) ...@@ -132,8 +133,11 @@ Cocoa_GL_CreateContext(_THIS, SDL_Window * window)
attr[i++] = NSOpenGLPFANoRecovery; attr[i++] = NSOpenGLPFANoRecovery;
} }
if (_this->gl_config.accelerated > 0) { if (_this->gl_config.accelerated) {
attr[i++] = NSOpenGLPFAAccelerated; attr[i++] = NSOpenGLPFAAccelerated;
} else {
attr[i++] = NSOpenGLPFARendererID;
attr[i++] = kCGLRendererGenericFloatID;
} }
attr[i++] = NSOpenGLPFAScreenMask; attr[i++] = NSOpenGLPFAScreenMask;
......
...@@ -469,12 +469,9 @@ WIN_GL_SetupWindow(_THIS, SDL_Window * window) ...@@ -469,12 +469,9 @@ WIN_GL_SetupWindow(_THIS, SDL_Window * window)
*iAttr++ = _this->gl_config.multisamplesamples; *iAttr++ = _this->gl_config.multisamplesamples;
} }
if (_this->gl_config.accelerated >= 0) { *iAttr++ = WGL_ACCELERATION_ARB;
*iAttr++ = WGL_ACCELERATION_ARB; *iAttr++ = (_this->gl_config.accelerated ? WGL_GENERIC_ACCELERATION_ARB :
*iAttr++ = WGL_NO_ACCELERATION_ARB);
(_this->gl_config.accelerated ? WGL_GENERIC_ACCELERATION_ARB :
WGL_NO_ACCELERATION_ARB);
}
*iAttr = 0; *iAttr = 0;
......
...@@ -359,17 +359,19 @@ X11_GL_GetVisual(_THIS, Display * display, int screen) ...@@ -359,17 +359,19 @@ X11_GL_GetVisual(_THIS, Display * display, int screen)
attribs[i++] = _this->gl_config.multisamplesamples; attribs[i++] = _this->gl_config.multisamplesamples;
} }
if (_this->gl_config.accelerated >= 0 if (_this->gl_data->HAS_GLX_EXT_visual_rating) {
&& _this->gl_data->HAS_GLX_EXT_visual_rating) {
attribs[i++] = GLX_VISUAL_CAVEAT_EXT; attribs[i++] = GLX_VISUAL_CAVEAT_EXT;
attribs[i++] = GLX_NONE_EXT; attribs[i++] = _this->gl_config.accelerated ? GLX_NONE_EXT :
GLX_SLOW_VISUAL_EXT;
} }
#ifdef GLX_DIRECT_COLOR /* Try for a DirectColor visual for gamma support */ #ifdef GLX_DIRECT_COLOR /* Try for a DirectColor visual for gamma support */
if (X11_UseDirectColorVisuals()) { if (X11_UseDirectColorVisuals()) {
attribs[i++] = GLX_X_VISUAL_TYPE; attribs[i++] = GLX_X_VISUAL_TYPE;
attribs[i++] = GLX_DIRECT_COLOR; attribs[i++] = GLX_DIRECT_COLOR;
} }
#endif #endif
attribs[i++] = None; attribs[i++] = None;
vinfo = _this->gl_data->glXChooseVisual(display, screen, attribs); vinfo = _this->gl_data->glXChooseVisual(display, screen, attribs);
......
...@@ -370,7 +370,7 @@ DrawLogoTexture(void) ...@@ -370,7 +370,7 @@ DrawLogoTexture(void)
int int
RunGLTest(int argc, char *argv[], RunGLTest(int argc, char *argv[],
int logo, int logocursor, int slowly, int bpp, float gamma, int logo, int logocursor, int slowly, int bpp, float gamma,
int noframe, int fsaa, int sync, int accel) int noframe, int fsaa, int sync, int noaccel)
{ {
int i; int i;
int rgb_size[3]; int rgb_size[3];
...@@ -454,9 +454,7 @@ RunGLTest(int argc, char *argv[], ...@@ -454,9 +454,7 @@ RunGLTest(int argc, char *argv[],
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1); SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, fsaa); SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, fsaa);
} }
if (accel) { SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, !noaccel);
SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1);
}
if (SDL_SetVideoMode(w, h, bpp, video_flags) == NULL) { if (SDL_SetVideoMode(w, h, bpp, video_flags) == NULL) {
fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError()); fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError());
SDL_Quit(); SDL_Quit();
...@@ -493,10 +491,8 @@ RunGLTest(int argc, char *argv[], ...@@ -493,10 +491,8 @@ RunGLTest(int argc, char *argv[],
printf("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa, printf("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa,
value); value);
} }
if (accel) { SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value);
SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value); printf("SDL_GL_ACCELERATED_VISUAL: requested %d, got %d\n", !noaccel, value);
printf("SDL_GL_ACCELERATED_VISUAL: requested 1, got %d\n", value);
}
if (sync) { if (sync) {
printf("Buffer swap interval: requested 1, got %d\n", printf("Buffer swap interval: requested 1, got %d\n",
SDL_GL_GetSwapInterval()); SDL_GL_GetSwapInterval());
...@@ -707,7 +703,7 @@ main(int argc, char *argv[]) ...@@ -707,7 +703,7 @@ main(int argc, char *argv[])
float gamma = 0.0; float gamma = 0.0;
int noframe = 0; int noframe = 0;
int fsaa = 0; int fsaa = 0;
int accel = 0; int noaccel = 0;
int sync = 0; int sync = 0;
logo = 0; logo = 0;
...@@ -738,22 +734,22 @@ main(int argc, char *argv[]) ...@@ -738,22 +734,22 @@ main(int argc, char *argv[])
if (strcmp(argv[i], "-fsaa") == 0) { if (strcmp(argv[i], "-fsaa") == 0) {
++fsaa; ++fsaa;
} }
if (strcmp(argv[i], "-accel") == 0) { if (strcmp(argv[i], "-noaccel") == 0) {
++accel; ++noaccel;
} }
if (strcmp(argv[i], "-sync") == 0) { if (strcmp(argv[i], "-sync") == 0) {
++sync; ++sync;
} }
if (strncmp(argv[i], "-h", 2) == 0) { if (strncmp(argv[i], "-h", 2) == 0) {
printf printf
("Usage: %s [-twice] [-logo] [-logocursor] [-slow] [-bpp n] [-gamma n] [-noframe] [-fsaa] [-accel] [-sync] [-fullscreen]\n", ("Usage: %s [-twice] [-logo] [-logocursor] [-slow] [-bpp n] [-gamma n] [-noframe] [-fsaa] [-noaccel] [-sync] [-fullscreen]\n",
argv[0]); argv[0]);
exit(0); exit(0);
} }
} }
for (i = 0; i < numtests; ++i) { for (i = 0; i < numtests; ++i) {
RunGLTest(argc, argv, logo, logocursor, slowly, bpp, gamma, RunGLTest(argc, argv, logo, logocursor, slowly, bpp, gamma,
noframe, fsaa, sync, accel); noframe, fsaa, sync, noaccel);
} }
return 0; return 0;
} }
......
...@@ -162,7 +162,7 @@ Render() ...@@ -162,7 +162,7 @@ Render()
int int
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
int fsaa, accel; int fsaa, noaccel;
int value; int value;
int i, done; int i, done;
SDL_DisplayMode mode; SDL_DisplayMode mode;
...@@ -172,7 +172,7 @@ main(int argc, char *argv[]) ...@@ -172,7 +172,7 @@ main(int argc, char *argv[])
/* Initialize parameters */ /* Initialize parameters */
fsaa = 0; fsaa = 0;
accel = 0; noaccel = 0;
/* Initialize test framework */ /* Initialize test framework */
state = CommonCreateState(argv, SDL_INIT_VIDEO); state = CommonCreateState(argv, SDL_INIT_VIDEO);
...@@ -187,15 +187,15 @@ main(int argc, char *argv[]) ...@@ -187,15 +187,15 @@ main(int argc, char *argv[])
if (SDL_strcasecmp(argv[i], "--fsaa") == 0) { if (SDL_strcasecmp(argv[i], "--fsaa") == 0) {
++fsaa; ++fsaa;
consumed = 1; consumed = 1;
} else if (SDL_strcasecmp(argv[i], "--accel") == 0) { } else if (SDL_strcasecmp(argv[i], "--noaccel") == 0) {
++accel; ++noaccel;
consumed = 1; consumed = 1;
} else { } else {
consumed = -1; consumed = -1;
} }
} }
if (consumed < 0) { if (consumed < 0) {
fprintf(stderr, "Usage: %s %s [--fsaa] [--accel]\n", argv[0], fprintf(stderr, "Usage: %s %s [--fsaa] [--noaccel]\n", argv[0],
CommonUsage(state)); CommonUsage(state));
quit(1); quit(1);
} }
...@@ -213,9 +213,7 @@ main(int argc, char *argv[]) ...@@ -213,9 +213,7 @@ main(int argc, char *argv[])
state->gl_multisamplebuffers = 1; state->gl_multisamplebuffers = 1;
state->gl_multisamplesamples = fsaa; state->gl_multisamplesamples = fsaa;
} }
if (accel) { state->gl_accelerated = !noaccel;
state->gl_accelerated=1;
}
if (!CommonInit(state)) { if (!CommonInit(state)) {
quit(2); quit(2);
...@@ -284,14 +282,13 @@ main(int argc, char *argv[]) ...@@ -284,14 +282,13 @@ main(int argc, char *argv[])
SDL_GetError()); SDL_GetError());
} }
} }
if (accel) { status = SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value);
status = SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value); if (!status) {
if (!status) { printf("SDL_GL_ACCELERATED_VISUAL: requested %d, got %d\n", !noaccel,
printf("SDL_GL_ACCELERATED_VISUAL: requested 1, got %d\n", value); value);
} else { } else {
printf("Failed to get SDL_GL_ACCELERATED_VISUAL: %s\n", printf("Failed to get SDL_GL_ACCELERATED_VISUAL: %s\n",
SDL_GetError()); SDL_GetError());
}
} }
/* Set rendering settings */ /* Set rendering settings */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment