We are currently migrating Bugzilla to GitHub issues.
Any changes made to the bug tracker now will be lost, so please do not post new bugs or make changes to them.
When we're done, all bug URLs will redirect to their equivalent location on the new bug tracker.

Bug 2575

Summary: Current GL context tracking fails
Product: SDL Reporter: Ronie Salgado <roniesalg>
Component: videoAssignee: Sam Lantinga <slouken>
Status: RESOLVED FIXED QA Contact: Sam Lantinga <slouken>
Severity: normal    
Priority: P2    
Version: 2.0.3   
Hardware: x86_64   
OS: Linux   
Attachments: Bug Reproduction

Description Ronie Salgado 2014-06-07 01:48:20 UTC
Created attachment 1673 [details]
Bug Reproduction

The GL Renderer current context tracking fails when one window is used with an SDL renderer but another separate window is used with a user handled OpenGL context.

Attached is a small program that reproduces this bug, at least in some Linux machines where an OpenGL renderer is provided by default.

Expected Output:
-"First window" should be blue.
-"Second window" should be green.

Gotten Output:
- "First window" black.
- "Second window" blue.

What happened:
The renderer created for the "first window" ends rendering into the "second window" OpenGL context.

Bug location:

SDL_render_gl.c - line 286 on hg:
static SDL_GLContext SDL_CurrentContext = NULL;

When making SDL_GL_MakeCurrent from the user perspective, that variable or the GL renderer is not notified about the OpenGL context change.

Solution proposal:
- Move the current GL context cache into another place global.
Comment 1 Sam Lantinga 2014-06-16 01:10:19 UTC
I think this change fixes the bug, can you verify?
https://hg.libsdl.org/SDL/rev/553e9f7cd10e

Thanks!
Comment 2 Sam Lantinga 2017-08-14 13:03:02 UTC
No response, closing this bug.