Lower required OpenGL version from 3.3 -> 3.0

This commit is contained in:
ts-korhonen
2021-12-04 21:26:55 +02:00
parent 9679ec1955
commit 40abfc1b5e
23 changed files with 125 additions and 667 deletions

View File

@@ -473,7 +473,7 @@ static void opengl_main(void* param)
SDL_SetHint(SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH, "1"); /* Is this actually doing anything...? */
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
if (GLAD_GL_ARB_debug_output)
@@ -526,7 +526,7 @@ static void opengl_main(void* param)
SDL_GL_DeleteContext(context);
opengl_fail();
}
if (GLAD_GL_ARB_debug_output)
{
glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
@@ -592,14 +592,17 @@ static void opengl_main(void* param)
}
}
/* Check if commands that use buffers have been completed. */
for (int i = 0; i < BUFFERCOUNT; i++)
if (GLAD_GL_ARB_sync)
{
if (blit_info[i].sync != NULL && glClientWaitSync(blit_info[i].sync, GL_SYNC_FLUSH_COMMANDS_BIT, 0) != GL_TIMEOUT_EXPIRED)
/* Check if commands that use buffers have been completed. */
for (int i = 0; i < BUFFERCOUNT; i++)
{
glDeleteSync(blit_info[i].sync);
blit_info[i].sync = NULL;
atomic_flag_clear(&blit_info[i].in_use);
if (blit_info[i].sync != NULL && glClientWaitSync(blit_info[i].sync, GL_SYNC_FLUSH_COMMANDS_BIT, 0) != GL_TIMEOUT_EXPIRED)
{
glDeleteSync(blit_info[i].sync);
blit_info[i].sync = NULL;
atomic_flag_clear(&blit_info[i].in_use);
}
}
}
@@ -653,8 +656,17 @@ static void opengl_main(void* param)
glPixelStorei(GL_UNPACK_ROW_LENGTH, ROW_LENGTH);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, info->w, info->h, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, NULL);
/* Add fence to track when above gl commands are complete. */
info->sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
if (GLAD_GL_ARB_sync)
{
/* Add fence to track when above gl commands are complete. */
info->sync = glFenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
}
else
{
/* No sync objects; block until commands are complete. */
glFinish();
atomic_flag_clear(&info->in_use);
}
read_pos = (read_pos + 1) % BUFFERCOUNT;
@@ -788,10 +800,13 @@ static void opengl_main(void* param)
SDL_ShowCursor(show_cursor);
}
for (int i = 0; i < BUFFERCOUNT; i++)
if (GLAD_GL_ARB_sync)
{
if (blit_info[i].sync != NULL)
glDeleteSync(blit_info[i].sync);
for (int i = 0; i < BUFFERCOUNT; i++)
{
if (blit_info[i].sync != NULL)
glDeleteSync(blit_info[i].sync);
}
}
finalize_glcontext(&gl);