Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Default to allow either accelerated or not
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed Dec 15, 2009
1 parent 2b3fe17 commit 8616609
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 36 deletions.
4 changes: 2 additions & 2 deletions src/video/SDL_video.c
Expand Up @@ -239,7 +239,7 @@ SDL_VideoInit(const char *driver_name, Uint32 flags)
_this->gl_config.multisamplebuffers = 0;
_this->gl_config.multisamplesamples = 0;
_this->gl_config.retained_backing = 1;
_this->gl_config.accelerated = 1;
_this->gl_config.accelerated = -1; /* accelerated or not, both are fine */
_this->gl_config.major_version = 2;
_this->gl_config.minor_version = 1;

Expand Down Expand Up @@ -3274,7 +3274,7 @@ SDL_GL_GetAttribute(SDL_GLattr attr, int *value)
case SDL_GL_ACCELERATED_VISUAL:
{
/* FIXME: How do we get this information? */
*value = _this->gl_config.accelerated;
*value = (_this->gl_config.accelerated != 0);
return 0;
}
default:
Expand Down
12 changes: 7 additions & 5 deletions src/video/cocoa/SDL_cocoaopengl.m
Expand Up @@ -133,11 +133,13 @@ - (CGLContextObj)CGLContextObj;
attr[i++] = NSOpenGLPFANoRecovery;
}

if (_this->gl_config.accelerated) {
attr[i++] = NSOpenGLPFAAccelerated;
} else {
attr[i++] = NSOpenGLPFARendererID;
attr[i++] = kCGLRendererGenericFloatID;
if (_this->gl_config.accelerated >= 0) {
if (_this->gl_config.accelerated) {
attr[i++] = NSOpenGLPFAAccelerated;
} else {
attr[i++] = NSOpenGLPFARendererID;
attr[i++] = kCGLRendererGenericFloatID;
}
}

attr[i++] = NSOpenGLPFAScreenMask;
Expand Down
9 changes: 6 additions & 3 deletions src/video/win32/SDL_win32opengl.c
Expand Up @@ -469,9 +469,12 @@ WIN_GL_SetupWindow(_THIS, SDL_Window * window)
*iAttr++ = _this->gl_config.multisamplesamples;
}

*iAttr++ = WGL_ACCELERATION_ARB;
*iAttr++ = (_this->gl_config.accelerated ? WGL_GENERIC_ACCELERATION_ARB :
WGL_NO_ACCELERATION_ARB);
if (_this->gl_config.accelerated >= 0) {
*iAttr++ = WGL_ACCELERATION_ARB;
*iAttr++ =
(_this->gl_config.accelerated ? WGL_GENERIC_ACCELERATION_ARB :
WGL_NO_ACCELERATION_ARB);
}

*iAttr = 0;

Expand Down
3 changes: 2 additions & 1 deletion src/video/x11/SDL_x11opengl.c
Expand Up @@ -359,7 +359,8 @@ X11_GL_GetVisual(_THIS, Display * display, int screen)
attribs[i++] = _this->gl_config.multisamplesamples;
}

if (_this->gl_data->HAS_GLX_EXT_visual_rating) {
if (_this->gl_config.accelerated >= 0 &&
_this->gl_data->HAS_GLX_EXT_visual_rating) {
attribs[i++] = GLX_VISUAL_CAVEAT_EXT;
attribs[i++] = _this->gl_config.accelerated ? GLX_NONE_EXT :
GLX_SLOW_VISUAL_EXT;
Expand Down
7 changes: 5 additions & 2 deletions test/common.c
Expand Up @@ -104,7 +104,7 @@ CommonCreateState(char **argv, Uint32 flags)
state->gl_multisamplebuffers = 0;
state->gl_multisamplesamples = 0;
state->gl_retained_backing = 1;
state->gl_accelerated = 1;
state->gl_accelerated = -1;
state->gl_major_version = 2;
state->gl_minor_version = 1;

Expand Down Expand Up @@ -659,7 +659,10 @@ CommonInit(CommonState * state)
SDL_GL_SetAttribute(SDL_GL_STEREO, state->gl_stereo);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, state->gl_multisamplebuffers);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, state->gl_multisamplesamples);
SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, state->gl_accelerated);
if (state->gl_accelerated >= 0) {
SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL,
state->gl_accelerated);
}
SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, state->gl_retained_backing);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, state->gl_major_version);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, state->gl_minor_version);
Expand Down
23 changes: 14 additions & 9 deletions test/testgl.c
Expand Up @@ -370,7 +370,7 @@ DrawLogoTexture(void)
int
RunGLTest(int argc, char *argv[],
int logo, int logocursor, int slowly, int bpp, float gamma,
int noframe, int fsaa, int sync, int noaccel)
int noframe, int fsaa, int sync, int accel)
{
int i;
int rgb_size[3];
Expand Down Expand Up @@ -454,7 +454,9 @@ RunGLTest(int argc, char *argv[],
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, fsaa);
}
SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, !noaccel);
if (accel >= 0) {
SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, accel);
}
if (SDL_SetVideoMode(w, h, bpp, video_flags) == NULL) {
fprintf(stderr, "Couldn't set GL mode: %s\n", SDL_GetError());
SDL_Quit();
Expand Down Expand Up @@ -491,8 +493,11 @@ RunGLTest(int argc, char *argv[],
printf("SDL_GL_MULTISAMPLESAMPLES: requested %d, got %d\n", fsaa,
value);
}
SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value);
printf("SDL_GL_ACCELERATED_VISUAL: requested %d, got %d\n", !noaccel, value);
if (accel >= 0) {
SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value);
printf("SDL_GL_ACCELERATED_VISUAL: requested %d, got %d\n", accel,
value);
}
if (sync) {
printf("Buffer swap interval: requested 1, got %d\n",
SDL_GL_GetSwapInterval());
Expand Down Expand Up @@ -703,7 +708,7 @@ main(int argc, char *argv[])
float gamma = 0.0;
int noframe = 0;
int fsaa = 0;
int noaccel = 0;
int accel = -1;
int sync = 0;

logo = 0;
Expand Down Expand Up @@ -734,22 +739,22 @@ main(int argc, char *argv[])
if (strcmp(argv[i], "-fsaa") == 0) {
++fsaa;
}
if (strcmp(argv[i], "-noaccel") == 0) {
++noaccel;
if (strcmp(argv[i], "-accel") == 0) {
accel = atoi(argv[++i]);
}
if (strcmp(argv[i], "-sync") == 0) {
++sync;
}
if (strncmp(argv[i], "-h", 2) == 0) {
printf
("Usage: %s [-twice] [-logo] [-logocursor] [-slow] [-bpp n] [-gamma n] [-noframe] [-fsaa] [-noaccel] [-sync] [-fullscreen]\n",
("Usage: %s [-twice] [-logo] [-logocursor] [-slow] [-bpp n] [-gamma n] [-noframe] [-fsaa] [-accel n] [-sync] [-fullscreen]\n",
argv[0]);
exit(0);
}
}
for (i = 0; i < numtests; ++i) {
RunGLTest(argc, argv, logo, logocursor, slowly, bpp, gamma,
noframe, fsaa, sync, noaccel);
noframe, fsaa, sync, accel);
}
return 0;
}
Expand Down
32 changes: 18 additions & 14 deletions test/testgl2.c
Expand Up @@ -162,7 +162,7 @@ Render()
int
main(int argc, char *argv[])
{
int fsaa, noaccel;
int fsaa, accel;
int value;
int i, done;
SDL_DisplayMode mode;
Expand All @@ -172,7 +172,7 @@ main(int argc, char *argv[])

/* Initialize parameters */
fsaa = 0;
noaccel = 0;
accel = -1;

/* Initialize test framework */
state = CommonCreateState(argv, SDL_INIT_VIDEO);
Expand All @@ -187,15 +187,15 @@ main(int argc, char *argv[])
if (SDL_strcasecmp(argv[i], "--fsaa") == 0) {
++fsaa;
consumed = 1;
} else if (SDL_strcasecmp(argv[i], "--noaccel") == 0) {
++noaccel;
consumed = 1;
} else if (SDL_strcasecmp(argv[i], "--accel") == 0 && i+1 < argc) {
accel = atoi(argv[i+1]);
consumed = 2;
} else {
consumed = -1;
}
}
if (consumed < 0) {
fprintf(stderr, "Usage: %s %s [--fsaa] [--noaccel]\n", argv[0],
fprintf(stderr, "Usage: %s %s [--fsaa] [--accel n]\n", argv[0],
CommonUsage(state));
quit(1);
}
Expand All @@ -213,7 +213,9 @@ main(int argc, char *argv[])
state->gl_multisamplebuffers = 1;
state->gl_multisamplesamples = fsaa;
}
state->gl_accelerated = !noaccel;
if (accel >= 0) {
state->gl_accelerated = accel;
}

if (!CommonInit(state)) {
quit(2);
Expand Down Expand Up @@ -282,13 +284,15 @@ main(int argc, char *argv[])
SDL_GetError());
}
}
status = SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value);
if (!status) {
printf("SDL_GL_ACCELERATED_VISUAL: requested %d, got %d\n", !noaccel,
value);
} else {
printf("Failed to get SDL_GL_ACCELERATED_VISUAL: %s\n",
SDL_GetError());
if (accel >= 0) {
status = SDL_GL_GetAttribute(SDL_GL_ACCELERATED_VISUAL, &value);
if (!status) {
printf("SDL_GL_ACCELERATED_VISUAL: requested %d, got %d\n", accel,
value);
} else {
printf("Failed to get SDL_GL_ACCELERATED_VISUAL: %s\n",
SDL_GetError());
}
}

/* Set rendering settings */
Expand Down

0 comments on commit 8616609

Please sign in to comment.