1. 12 Apr, 2016 1 commit
  2. 17 Feb, 2015 1 commit
  3. 19 May, 2014 1 commit
  4. 27 Apr, 2012 1 commit
    • Emmanuele Bassi's avatar
      timeline: Add an internal function for advancing a timeline · edfe6181
      Emmanuele Bassi authored
      There are cases when we want to advance a timeline from another time
      source. We cannot use _clutter_timeline_do_tick() directly, as that
      assumes that the timeline is already playing, so we'll need to create a
      wrapper that toggles the playing flag around it.
  5. 06 Mar, 2012 1 commit
  6. 13 Feb, 2012 1 commit
    • Emmanuele Bassi's avatar
      Clean up clutter-timeline.h · bc2e4ac6
      Emmanuele Bassi authored
      Re-align everything to allow expansion, and move the only "protected"
      function to the clutter-master-clock.h private header.
  7. 09 Feb, 2012 1 commit
    • Emmanuele Bassi's avatar
      Mark internal symbol as private · 910b09d7
      Emmanuele Bassi authored
      A bunch of private symbols have escaped into the SO; let's rectify this
      situation by using the '_' private prefix, or making them static as they
      should have been.
  8. 10 Jul, 2009 1 commit
    • Robert Bragg's avatar
      ensure next iteration · 211bf798
      Robert Bragg authored
      Added an internal clutter function, _clutter_master_clock_ensure_next_iteration
      that ensures another iteration of the master clock, can be called from repaint
      functions as well as other threads.
  9. 09 Jun, 2009 1 commit
    • Owen W. Taylor's avatar
      Limit the frame rate when not syncing to VBLANK · dcd8d283
      Owen W. Taylor authored
      clutter-master-clock.c clutter-master-clock.h: When the
        SYNC_TO_VBLANK feature is not available, wait for 1/frame_rate
        seconds since the start of the last frame before drawing the next
        frame. Add _clutter_master_clock_start_running() to abstract
        the usage of g_main_context_wakeup()
      clutter-stage.c: Add _clutter_master_clock_start_running()
      clutter-main.c: Update docs for clutter_set_default_frame_rate()
        clutter_get_default_frame_rate() to no longer talk about timeline
        frame rates.
      test-text-perf.c test-text.c: Set a frame rate of 1000fps so that
        frame-rate limiting doesn't affect the result.
      http://bugzilla.openedhand.com/show_bug.cgi?id=1637Signed-off-by: default avatarEmmanuele Bassi <ebassi@linux.intel.com>
  10. 24 Apr, 2009 1 commit
    • Emmanuele Bassi's avatar
      Use a single master "clock" to drive timelines · 678f9967
      Emmanuele Bassi authored
      Currently, all timelines install a timeout inside the TimeoutPool
      they share. Every time the main loop spins, all the timeouts are
      updated. This, in turn, will usually lead to redraws being queued
      on the stages.
      This behaviour leads to the potential starvation of timelines and
      to excessive redraws.
      One lesson learned from the games developers is that the scenegraph
      should be prepared in its entirety before the GL paint sequence is
      initiated. This means making sure that every ::new-frame signal
      handler is called before clutter_redraw() is invoked.
      In order to do so a TimeoutPool is not enough: we need a master
      clock. The clock will be responsible for advancing all the active
      timelines created inside a scene, but only when the stage is
      being redrawn.
      The sequence is:
        + queue_redraw() is invoked on an actor and bubbles up
          to the stage
        + if no redraw() has already been scheduled, install an
          idle handler with a known priority
        + inside the idle handler:
          - advance the master clock, which will in turn advance
            every playing timeline by the amount of milliseconds
            elapsed since the last redraw; this will make every
            playing timeline emit the ::new-frame signal
          - queue a relayout
          - call the redraw() method of the backend
      This way we trade multiple timeouts with a single frame source
      that only runs if a timeline is playing and queues redraws on
      the various stages.