1. 18 Nov, 2013 - 1 commit
  2. 01 Nov, 2013 - 1 commit
  3. 30 Oct, 2013 - 1 commit
    • Gunnar Sletta's avatar
      Use one render loop per QQuickWindow · 906d5c5c
      Gunnar Sletta authored
      
      See the task for the full reasoning behind this patch.
      
      The threaded renderloop has been refactored to have one window per
      thread. This is mostly a simplification of the current code path where
      for loops over multiple windows are turned into if (window).
      
      The QSGContext has been split into two classes, QSGRenderContext
      for which there is one per OpenGLContext.
      
      The rest of the patch is name changes and a couple of cleanups
      in the hopes of simplifying this change.
      
      Task-number: QTBUG-33993
      
      Change-Id: I31c81f9694d7da7474a72333169be38de62613c4
      Reviewed-by: default avatarSean Harmer <sean.harmer@kdab.com>
      906d5c5c
  4. 30 Sep, 2013 - 1 commit
  5. 07 Jun, 2013 - 1 commit
    • Alan Alpert's avatar
      Set incubation controller when a Window{} is loaded via QQmlApplicationEngine · 9d75626b
      Alan Alpert authored
      
      This was the one convenience that was lost when transitioning templates
      from QQuickView + Item{} to QQmlApplicationEngine + Window{}.
      
      As the default window incubation controller was tied to the first
      window's frameSwapped, we could easily run into a situation where
      a secondary window required incubation while the first window
      was idle. This would then starve the incubation controller. Instead
      make it so that the renderloop emits "timeToIncubate" once it
      is done with a renderpass over all windows, so the incubator
      gets to run once and exactly once per vsync when animating.
      
      The incubator logic was also flawed in that it could post
      a lot of events to itself as a result of incubatingObjectCountChanged
      and thus starve system events while processing incubation requests.
      Now we start a timer and don't start it again until we have
      completed an incubation pass.
      
      Task-number: QTBUG-31203
      Change-Id: Iea9e2c81efb46bb7875c70ccda0cdc4b3b3e58e7
      Reviewed-by: default avatarAlan Alpert <aalpert@blackberry.com>
      Reviewed-by: default avatarGunnar Sletta <gunnar.sletta@digia.com>
      9d75626b
  6. 06 May, 2013 - 1 commit
  7. 24 Apr, 2013 - 1 commit
    • Gunnar Sletta's avatar
      Renderloop for Windows · 73d8bcda
      Gunnar Sletta authored
      
      The normal GUI thread render loop has several problems on windows.
      It does not do vsync animations and on some hardware, where the
      vsync delta is higher than the time it takes to fire a 16ms timer,
      the eventloop will always contain at least one event and we never
      return to processing non-client area events, like resize.
      
      Also, threaded OpenGL seems rather unstable, so the threaded renderer
      is not a stable option.
      
      So we introduce a windows based renderloop. It is fully cross platform
      but written to make the most out of the limitations which exist.
      
      The overall goal is:
        - vsync animations when allowed by the system. We get this by
          using an animation driver and advancing in sync with rendering
        - Keep system load low and allow for NC processing. The maybeUpdate
          function will start a short timer which will let the renderloop
          idle for few ms, allowing the eventloop to pick up system events.
          (this is similar to what the threaded renderer also does, btw)
      
      Change-Id: Ic192fd0ed7d5ecdaa2c887c08cbeb42c5de6b8a8
      Reviewed-by: default avatarFriedemann Kleint <Friedemann.Kleint@digia.com>
      Reviewed-by: default avatarSamuel Rødal <samuel.rodal@digia.com>
      73d8bcda