Adjust testgl.c to test gl_release_behavior

This commit is contained in:
Ramez Ragaa 2024-12-28 23:47:54 +02:00 committed by Ryan C. Gordon
parent 3424ec948c
commit e98ee9bb04
3 changed files with 10 additions and 0 deletions

View file

@ -139,6 +139,7 @@ typedef struct
int gl_accum_blue_size;
int gl_accum_alpha_size;
int gl_stereo;
int gl_release_behavior;
int gl_multisamplebuffers;
int gl_multisamplesamples;
int gl_retained_backing;

View file

@ -1226,6 +1226,7 @@ bool SDLTest_CommonInit(SDLTest_CommonState *state)
SDL_GL_SetAttribute(SDL_GL_ACCUM_BLUE_SIZE, state->gl_accum_blue_size);
SDL_GL_SetAttribute(SDL_GL_ACCUM_ALPHA_SIZE, state->gl_accum_alpha_size);
SDL_GL_SetAttribute(SDL_GL_STEREO, state->gl_stereo);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_RELEASE_BEHAVIOR, state->gl_release_behavior);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, state->gl_multisamplebuffers);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, state->gl_multisamplesamples);
if (state->gl_accelerated >= 0) {

View file

@ -263,6 +263,9 @@ int main(int argc, char *argv[])
state->gl_green_size = 5;
state->gl_blue_size = 5;
state->gl_depth_size = 16;
/* For release_behavior to work, at least on Windows, you'll most likely need to set state->gl_major_version = 3 */
/* state->gl_major_version = 3; */
state->gl_release_behavior = 0;
state->gl_double_buffer = 1;
if (fsaa) {
state->gl_multisamplebuffers = 1;
@ -331,6 +334,11 @@ int main(int argc, char *argv[])
} else {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to get SDL_GL_DEPTH_SIZE: %s\n", SDL_GetError());
}
if (SDL_GL_GetAttribute(SDL_GL_CONTEXT_RELEASE_BEHAVIOR, &value)) {
SDL_Log("SDL_GL_CONTEXT_RELEASE_BEHAVIOR: requested %d, got %d\n", 0, value);
} else {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Failed to get SDL_GL_CONTEXT_RELEASE_BEHAVIOR: %s\n", SDL_GetError());
}
if (fsaa) {
if (SDL_GL_GetAttribute(SDL_GL_MULTISAMPLEBUFFERS, &value)) {
SDL_Log("SDL_GL_MULTISAMPLEBUFFERS: requested 1, got %d\n", value);