SHARE
TWEET

Untitled

a guest Mar 8th, 2018 4 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. bool renderFrame()
  2.     {
  3.         ScopedPointer<MessageManagerLock> mmLock;
  4.  
  5.         const bool isUpdating = needsUpdate.compareAndSetBool (0, 1);
  6.  
  7.         if (context.renderComponents && isUpdating)
  8.         {
  9.             // This avoids hogging the message thread when doing intensive rendering.
  10.             if (lastMMLockReleaseTime + 1 >= Time::getMillisecondCounter())
  11.                 Thread::sleep (2);
  12.  
  13.             mmLock = new MessageManagerLock (this);  // need to acquire this before locking the context.
  14.             if (! mmLock->lockWasGained())
  15.                 return false;
  16.  
  17.             updateViewportSize (false);
  18.         }
  19.  
  20.         if (! context.makeActive())
  21.             return false;
  22.  
  23.         NativeContext::Locker locker (*nativeContext);
  24.  
  25.         JUCE_CHECK_OPENGL_ERROR
  26.  
  27.         if (context.renderer != nullptr)
  28.         {
  29.             glViewport (0, 0, viewportArea.getWidth(), viewportArea.getHeight());
  30.             context.currentRenderScale = scale;
  31.             context.renderer->renderOpenGL();
  32.             clearGLError();
  33.  
  34.             bindVertexArray();
  35.         }
  36.  
  37.         if (context.renderComponents)
  38.         {
  39.             if (isUpdating)
  40.             {
  41.                 paintComponent();
  42.  
  43.                 if (! hasInitialised)
  44.                     return false;
  45.  
  46.                 mmLock = nullptr;
  47.                 lastMMLockReleaseTime = Time::getMillisecondCounter();
  48.             }
  49.  
  50.             glViewport (0, 0, viewportArea.getWidth(), viewportArea.getHeight());
  51.             drawComponentBuffer();
  52.         }
  53.  
  54.         context.swapBuffers();
  55.  
  56.         OpenGLContext::deactivateCurrentContext();
  57.         return true;
  58.     }
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. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top