1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-10 23:44:24 +00:00

OpenGL: Detach OpenGL context after initialisation

This commit is contained in:
reuk 2024-10-23 19:18:19 +01:00
parent e2e3d949c7
commit 10680f9bf7
No known key found for this signature in database
GPG key ID: FCB43929F012EE5C

View file

@ -328,9 +328,11 @@ public:
RenderStatus renderFrame (MessageManager::Lock& mmLock)
{
if (! isFlagSet (state, StateFlags::initialised))
{
switch (initialiseOnThread())
ScopedContextActivator contextActivator;
if (! isFlagSet (state, StateFlags::initialised))
{
switch (initialiseOnThread (contextActivator))
{
case InitResult::fatal:
case InitResult::retry: return RenderStatus::noWork;
@ -346,7 +348,6 @@ public:
#endif
std::optional<MessageManager::Lock::ScopedTryLockType> scopedLock;
ScopedContextActivator contextActivator;
const auto stateToUse = state.fetch_and (StateFlags::persistent);
@ -617,14 +618,14 @@ public:
}
//==============================================================================
InitResult initialiseOnThread()
InitResult initialiseOnThread (ScopedContextActivator& activator)
{
// On android, this can get called twice, so drop any previous state.
associatedObjectNames.clear();
associatedObjects.clear();
cachedImageFrameBuffer.release();
context.makeActive();
activator.activate (context);
if (const auto nativeResult = nativeContext->initialiseOnRenderThread (context); nativeResult != InitResult::success)
return nativeResult;