com.threerings.media
Interface FrameParticipant

All Known Implementing Classes:
FrameInterval, HourglassView, MediaPanel, MisoScenePanel, TimerView, VirtualMediaPanel

public interface FrameParticipant

Provides a mechanism for participating in the frame tick managed by the FrameManager.


Method Summary
 Component getComponent()
          If a frame participant wishes also to be actively rendered every frame rather than use passive rendering (which for Swing, at least, is hijacked when using the frame manager such that we take care of repainting dirty Swing components every frame into our off-screen buffer), it can return a component here which will have Component.paint(java.awt.Graphics) called on it once per frame with a translated but unclipped graphics object.
 boolean needsPaint()
          Called immediately prior to getComponent() and then Component.paint(java.awt.Graphics) on said component, to determine whether or not this frame participant needs to be painted.
 void tick(long tickStamp)
          This is called on all registered frame participants, one for every frame.
 

Method Detail

tick

void tick(long tickStamp)
This is called on all registered frame participants, one for every frame. Following the tick the interface will be rendered, so participants can prepare themselves for their upcoming render in this method (making use of the timestamp provided for the frame if choreography is desired between different participants).


needsPaint

boolean needsPaint()
Called immediately prior to getComponent() and then Component.paint(java.awt.Graphics) on said component, to determine whether or not this frame participant needs to be painted.


getComponent

Component getComponent()
If a frame participant wishes also to be actively rendered every frame rather than use passive rendering (which for Swing, at least, is hijacked when using the frame manager such that we take care of repainting dirty Swing components every frame into our off-screen buffer), it can return a component here which will have Component.paint(java.awt.Graphics) called on it once per frame with a translated but unclipped graphics object.

Because clipping is expensive in terms of rectangle object allocation, frame participants are given the opportunity to do their own clipping because they are likely to want to clip to a more fine grained region than their entire bounds. If a participant does not wish to be actively rendered, it can safely return null.