SHARE
TWEET
Untitled
a guest
Mar 8th, 2018
4
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
- bool renderFrame()
- {
- ScopedPointer<MessageManagerLock> mmLock;
- const bool isUpdating = needsUpdate.compareAndSetBool (0, 1);
- if (context.renderComponents && isUpdating)
- {
- // This avoids hogging the message thread when doing intensive rendering.
- if (lastMMLockReleaseTime + 1 >= Time::getMillisecondCounter())
- Thread::sleep (2);
- mmLock = new MessageManagerLock (this); // need to acquire this before locking the context.
- if (! mmLock->lockWasGained())
- return false;
- updateViewportSize (false);
- }
- if (! context.makeActive())
- return false;
- NativeContext::Locker locker (*nativeContext);
- JUCE_CHECK_OPENGL_ERROR
- if (context.renderer != nullptr)
- {
- glViewport (0, 0, viewportArea.getWidth(), viewportArea.getHeight());
- context.currentRenderScale = scale;
- context.renderer->renderOpenGL();
- clearGLError();
- bindVertexArray();
- }
- if (context.renderComponents)
- {
- if (isUpdating)
- {
- paintComponent();
- if (! hasInitialised)
- return false;
- mmLock = nullptr;
- lastMMLockReleaseTime = Time::getMillisecondCounter();
- }
- glViewport (0, 0, viewportArea.getWidth(), viewportArea.getHeight());
- drawComponentBuffer();
- }
- context.swapBuffers();
- OpenGLContext::deactivateCurrentContext();
- return true;
- }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
