Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## quicktime.app.anim
Class SWCompositor

    java.lang.Object
      |
      +--quicktime.app.spaces.SimpleSpace
            |
            +--quicktime.app.anim.SWCompositor

All Implemented Interfaces:
  Collection, Compositable, Drawable, DrawingNotifier, DynamicCollection, DynamicImage, ImageSpec, Listener, QTDisplaySpace, QTDrawable, Space, Ticklish, Transformable

Direct Known Subclasses:
  Compositor

public abstract class SWCompositor
extends SimpleSpace
implements QTDisplaySpace, DynamicImage, DrawingNotifier

SWCompositor provides the capability to composit a complex image together of disparate image sources and then treat the result as a single image which is presented to the user.

It uses the QuickTime SpriteWorld internally to perform the compositing tasks. Thus all of the actual drawing of the members of a SWCompositor is handled through the interaction between the SpriteWorld and Sprite classes of quicktime.

The SpriteWorld itself is wrapped by the SWCompositor class, and to represent the Sprite class it uses the TwoDSprite. The TwoDSprite is a presenter - it presents image information and the presenation of the image information within the context of the SWCompositor's SpriteWorld is determined by the matrix, graphics mode, layer and visibility of the TwoDSprite's Sprite object.

To create a Sprite you need a valid SpriteWorld. To create a SpriteWorld you need a valid QDGraphics destination. Depending on whether a SWCompositor is visible or not you may or may not have a valid destination QDGraphics. The interaction between the SWCompositor and its TwoDSprite presenters handles the saving and creating of SpriteWorlds and their Sprites - the application does not need to deal specifically with this issue.

The SWCompositor has been designed without the requirement that its members be TwoDSprites. It maybe more convenient for an application to add members of a Compositor that are a source of image data and have the addMember method deal with the mechanics of creating the TwoDSprite presenter. Thus there are also methods that must be defined by the subclass for getting a member's TwoDSprite, and getting a TwoDSprite's member. This is important to understand for the following reason. Once a member has been added to a SWCompositor, it is the presenter within the SWCompositor itself (the TwoDSprite) that must be interacted with to effect the display characteristics of the member in the SWCompositor. Whilst a subclass may provide the capability to create the TwoDSprite presenter with display characteristics like Matrix and GraphicsMode, once the member is added altering the member's display characteristics directly may or may not effect the display characteristics of the member in the SWCompositor. Thus an application is better to always interact with the member's TwoDSprite presenter.

After a member is added to the SWCompositor the subclass should call the postProcessAdd (and remove in the case of a removeMember call). This call will look at the member that is being added and will perform two services. If the new member is an instance of the Notifier class then the SWCompositor registers the Notifer with the TwoDSprite presenter as the NotifyListener. That way a Sprite who presents image data that is not available at the time the member is added can still prepare itself for displaying an image when its Notifier notifies the TwoDSprite that its image data is valid. If the new member is an instance of DynamicImage, then this method will also call that member's addedToCompositor method to allow this new member to establish the invalidation mechanism it uses. Explicit invalidation is required for the SpriteWorld to redraw a Sprite that presents image data that is changing (such as a Movie) when nothing about the Sprite's presentation has changed.

The subclass defines completely the storage mechanism and protocols of its members.

See Also:
  `SpriteWorld`, `Sprite`, `TwoDSprite`, `quicktime.app.display.Compositor`

Field Summary
`int` | `hitTestFlag` default hit test is only to test on the visible pixels of a sprite
`int` | `taskFlag` This flag is used when the task method is called.

Fields inherited from class quicktime.app.spaces.SimpleSpace
`containedSpaces, controllersVec, ticklers, timer`

Fields inherited from interface quicktime.app.time.Ticklish
`kScale`

Constructor Summary
`protected` | `SWCompositor(QDGraphics spriteGWorld, QDColor backgroundColor, QDGraphics background, int scale, int period, Protocol defaultProtocol)` Used by subclasses to construct a SWCompositor.

Method Summary
`void` | `addDrawingListener(DrawingListener listener)` Registers an object as a listener of the Compositor.
`Invalidator` | `addedToCompositor(SWCompositor c, TwoDSprite s)` Returns an object that invalidates a sprite.
`protected void` | `createMembers()` This method is called after the Compositor has been added to a valid QDGraphics and the sprites can be added to the spriteworld.
`Region` | `getClip()` Returns the current clipping region used by the sprite world
`Compositable` | `getCompositable(java.lang.Object member)` This will return the TwoDSprite for the member as a Compositable object to enable an application to get and set the graphics mode presentation of the member object.
`ImageDescription` | `getDescription()` This method should return an ImageDescription that describes the image data that the class contains.
`QDRect` | `getDisplayBounds()` QTCanvas calls this method when it needs to get the client's location, width and/or height.
`GraphicsMode` | `getGraphicsMode()` Sets the graphics mode of the SpriteDisplay object - this will be restored on each subsequent creation of the internal SpriteWorld.
`QDGraphics` | `getGWorld()` QTCanvas calls this method to get the destination QDGraphics of its client.
`EncodedImage` | `getImage()` This method returns the actual image data.
`java.awt.Dimension` | `getInitialSize()` Deprecated. since QTJava 4.0
`java.util.Enumeration` | `getInvalidatorList()` Returns the list of invalidator objects for the Compositor's sprites that have a dynamic image source.
`Layerable` | `getLayerable(java.lang.Object member)` This will return the TwoDSprite for the member as a Layerable object to enable an application to get and set the layer presentation of the member object.
`Matrix` | `getMatrix()` This will return the client's current display transformations
`Invalidator` | `getMemberInvalidator(java.lang.Object member)` Returns the invalidator that is associated with the supplied member if the member has an Invalidator.
`abstract TwoDSprite` | `getMemberSprite(java.lang.Object member)` This method returns the TwoDSprite presenter that is presenting the image data of the given member.
`QDDimension` | `getOriginalSize()` This method returns the original size before the transformations specified in the returned matrix are applied.
`SWCompositor` | `getParent()` Returns the SWCompositor that this is the parent container of this SWCompositor.
`abstract java.lang.Object` | `getSpriteMember(TwoDSprite sprite)` This method returns the member that is being presented by the supplied TwoDSprite presenter.
`float` | `getStatistics()` The compositor's frame rate is calculated by the number of times it is tickled from the time an application calls resetStatistics and is only valid if the rate of the Compositor's Timer is not zero.
`Transformable` | `getTransformable(java.lang.Object member)` This will return the TwoDSprite for the member as a Transformable object to enable an application to get and set the display presentation (its location, scale, etc) of the member object.
`boolean` | `hasRecordMovie()` Returns true if the SWCompositor has a RecordMovie object.
`java.lang.Object` | `hitTest(int x, int y)` Return the frontmost object that is located at the specified coordinates.
`protected void` | `idle()` This method can be called to explicitly force the SWCompositor to redraw itself.
`boolean` | `isAutoRedrawing()` Returns the current state of the auto redrawing flag.
`protected void` | `postProcessAdd(java.lang.Object member, TwoDSprite s)` This method should be called by the subclass after the member has been added to the SWCompositor.
`protected void` | `postProcessRemove(java.lang.Object member, TwoDSprite s)` This method should be called by the subclass before the member has been removed from the SWCompositor.
`void` | `redraw(Region invalidRgn)` QTCanvas calls this method when the client should redraw itself.
`void` | `removedFromCompositor(SWCompositor c)` When a dynamic image class is removed from a SWCompositor this method is called to allow the class to cleanup any of the invalidation processes it had established in the addedToCompositor call.
`void` | `removeDrawingListener(DrawingListener listener)` Removes an object that is a listener of the Compositor.
`void` | `resetStatistics()` Resets the internal counters that are used to calculate the frame rate of the Compositor.
`protected void` | `saveMembers()` This method is called if a SpriteWorld has previously been created and the destination QDGraphics or QDGraphics is about to go away (such as removing a SpriteWorld from a QTCanvas).
`void` | `setAutoRedrawing(boolean flag)` If a SWCompositor's time rate is equal to zero, changing a property of a member's sprite requires the SWCompositor to be redrawn to see this change.
`void` | `setClip(Region clipRgn)` This method sets the sprite world's clip.
`void` | `setDisplayBounds(QDRect bounds)` QTCanvas calls this method when it needs to tell the client to adjust its location, width and/or height.
`void` | `setGraphicsMode(GraphicsMode mode)` Sets the current graphics mode.
`void` | `setGWorld(QDGraphics cgp)` QTCanvas calls this method to give the client the QDGraphics object it should use to do its drawing.
`void` | `setLocation(int x, int y)` A convenience method to set the position of a QTDrawable object.
`void` | `setMatrix(Matrix matrix)` This method sets the current matrix of the Transformable object to the new matrix.
`void` | `setRecordMovie(RecordMovie rm)` This method allows the application to register the intent to record a movie out of the compositing output of the SWCompositor.
`abstract java.util.Enumeration` | `sprites()` This returns an Enumeration that allows your application to iterate over the TwoDSprite presenters that are responsible for presenting the image data within the Compositor.
`boolean` | `tickle(float er, int time)` The Timer invokes the tickle method when the invocation constraints of the Timer are reached.
`java.lang.String` | `toString()` Return a string representation of this object.

Methods inherited from class quicktime.app.spaces.SimpleSpace
`addController, addedTo, addMember, controllers, finalize, getProtocol, getSource, getTimer, hasMember, isAppropriate, memberAdded, memberRemoved, removeAllControllers, removeAllMembers, removeController, removedFrom, removeMember, tickleList, timeChanged`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface quicktime.app.display.QTDisplaySpace
`addMember, getBackLayer, getFrontLayer`

Methods inherited from interface quicktime.app.spaces.Listener
`addedTo, removedFrom`

Methods inherited from interface quicktime.app.spaces.Space
`addController, controllers, getSource, getTimer, removeController, tickleList`

Methods inherited from interface quicktime.app.spaces.DynamicCollection
`getProtocol`

Methods inherited from interface quicktime.app.spaces.Collection
`addMember, hasMember, isAppropriate, isEmpty, members, removeMember, size`

Methods inherited from interface quicktime.app.time.Ticklish
`timeChanged`

Field Detail

### hitTestFlag

    public int hitTestFlag

  default hit test is only to test on the visible pixels of a sprite

### taskFlag

    public int taskFlag

  This flag is used when the task method is called. You can use any of the values from the idle in flags of the SpriteWorld

Constructor Detail

### SWCompositor

    protected SWCompositor(QDGraphics spriteGWorld,
                           QDColor backgroundColor,
                           QDGraphics background,
                           int scale,
                           int period,
                           Protocol defaultProtocol)
                    throws QTException

  Used by subclasses to construct a SWCompositor. The subclass must specify a background or a backgroundColor but not both.
  Parameters:
    `spriteGWorld` - this the buffer which the internal SpriteWorld uses to composit its image into.
    `background` - this is background that can be supplied to the SpriteWorld
    `backgroundColor` - this is background color that can be supplied to the SpriteWorld
    `scale` - the initial scale of the Space's timer
    `period` - the initial period of the Space's timer
    `defaultProtocol` - the minimal Protocol that members of the SWCompositor must meet

Method Detail

### resetStatistics

    public void resetStatistics()

  Resets the internal counters that are used to calculate the frame rate of the Compositor.

### getStatistics

    public float getStatistics()

  The compositor's frame rate is calculated by the number of times it is tickled from the time an application calls resetStatistics and is only valid if the rate of the Compositor's Timer is not zero. If this rate is zero this returns 0. Thus an application uses these calls like:

      	myCompositor.resetStatistics();
      	Thread.sleep (2000);	//sleep the stat's thread for 2 seconds to allow gathering of profile info
       	float fps = myCompositor.getStatistics();

  This call does not reset the internal counters, so consequent calls of getStatistics will return frames rendered over a longer period of time.

### getInvalidatorList

    public java.util.Enumeration getInvalidatorList()

  Returns the list of invalidator objects for the Compositor's sprites that have a dynamic image source. If no members of the Compositor are dynamic image sources this call returns null.
  Returns:
    an Enumeration

### getMemberInvalidator

    public Invalidator getMemberInvalidator(java.lang.Object member)

  Returns the invalidator that is associated with the supplied member if the member has an Invalidator. If the member doesn't or the object is not a member of the Compositor this returns null.
  Parameters:
    `member` - a member of the Compositor
  Returns:
    an Invalidator

### setRecordMovie

    public void setRecordMovie(RecordMovie rm)
                        throws QTException

  This method allows the application to register the intent to record a movie out of the compositing output of the SWCompositor. After each composit cycle the SWCompositor will call the frameReady of the RecordMovie object as long as the frameReady method returns true.
  Parameters:
    `rm` - the RecordMovie object

### hasRecordMovie

    public boolean hasRecordMovie()

  Returns true if the SWCompositor has a RecordMovie object.
  Returns:
    a boolean

### getDescription

    public ImageDescription getDescription()
                                    throws QTException

  This method should return an ImageDescription that describes the image data that the class contains.
  Specified by:
    `getDescription` in interface `ImageSpec`
  Returns:
    the ImageDescription of an Image

### getImage

    public EncodedImage getImage()
                          throws QTException,
                                 java.lang.IndexOutOfBoundsException

  This method returns the actual image data.
  Specified by:
    `getImage` in interface `ImageSpec`
  Returns:
    the image data

### getParent

    public SWCompositor getParent()

  Returns the SWCompositor that this is the parent container of this SWCompositor. This call may return null if the calling object is the top level containing space.
  Returns:
    the parent SWCompositor or null

### getMatrix

    public Matrix getMatrix()
                     throws StdQTException

  This will return the client's current display transformations
  Specified by:
    `getMatrix` in interface `Transformable`
  Returns:
    the display transformations of the client

### setMatrix

    public void setMatrix(Matrix matrix)
                   throws QTException

  This method sets the current matrix of the Transformable object to the new matrix.
  Specified by:
    `setMatrix` in interface `Transformable`

### getInitialSize

    public java.awt.Dimension getInitialSize()
                                      throws QTException

  Deprecated. since QTJava 4.0

  This method returns the original size before the transformations specified in the returned matrix are applied.
  See Also:
    `()`

### getOriginalSize

    public QDDimension getOriginalSize()
                                throws QTException

  This method returns the original size before the transformations specified in the returned matrix are applied.
  Specified by:
    `getOriginalSize` in interface `Transformable`
  Returns:
    the size of the offscreen buffer of the Compositor

### getGWorld

    public QDGraphics getGWorld()

  QTCanvas calls this method to get the destination QDGraphics of its client.
  Specified by:
    `getGWorld` in interface `QTDrawable`
  Returns:
    a QDGraphics object or null

### setGWorld

    public void setGWorld(QDGraphics cgp)
                   throws QTException

  QTCanvas calls this method to give the client the QDGraphics object it should use to do its drawing. If the incoming QDGraphics is the QDGraphics.scratch then the drawable will not be visible and can disable itself. If a client is unable to set the graphics world it should throw an exception.
  Specified by:
    `setGWorld` in interface `QTDrawable`
  Parameters:
    `cgp` - a QDGraphics object

### setDisplayBounds

    public void setDisplayBounds(QDRect bounds)
                          throws StdQTException

  QTCanvas calls this method when it needs to tell the client to adjust its location, width and/or height. All values are in pixels.
  Specified by:
    `setDisplayBounds` in interface `Drawable`
  Parameters:
    `bounds` - the new size and location.

### setLocation

    public void setLocation(int x,
                            int y)
                     throws QTException

  A convenience method to set the position of a QTDrawable object.
  Specified by:
    `setLocation` in interface `QTDrawable`
  Parameters:
    `x` - the new x location
    `y` - the new y location

### getDisplayBounds

    public QDRect getDisplayBounds()
                            throws QTException

  QTCanvas calls this method when it needs to get the client's location, width and/or height. All values are in pixels.
  Specified by:
    `getDisplayBounds` in interface `Drawable`
  Returns:
    bounds the new size and location.

### redraw

    public final void redraw(Region invalidRgn)
                      throws QTException

  QTCanvas calls this method when the client should redraw itself. If the canvas is able to discern that only a part of the client's drawing area needs to be redrawn - then this area shall be passed in using the invalidRgn. Otherwise this will be null in which case the client should redraw itself entirely.
  Specified by:
    `redraw` in interface `Drawable`
  Parameters:
    `invalidRgn` - the invalidRgn that the client should redraw

### isAutoRedrawing

    public boolean isAutoRedrawing()

  Returns the current state of the auto redrawing flag.
  Returns:
    a boolean.
  See Also:
    `(boolean)`

### setAutoRedrawing

    public void setAutoRedrawing(boolean flag)

  If a SWCompositor's time rate is equal to zero, changing a property of a member's sprite requires the SWCompositor to be redrawn to see this change. This is done automatically for you by the TwoDSprite class. However, if an application wishes to change a number of properties of a given sprite or sprites, redrawing the Compositor after each change can be an udesirable side-effect of this automatic redrawing capability. The application can temporarily turn or or off this capability of the SWCompositor, which is controlled by the TwoDSprite, by changing the setting of the auto redrawing flag. If this auto redrawing flag is false, the TwoDSprite will not automatically redraw its parent SWCompositor, if the flag is true then the TwoDSprite will redraw its parent.

  Typically an application will set this flag to false, make the changes to its sprites, then reset the flag to true. The application will still have to redraw the SWCompositor after making the changes to its member sprites.

  If the rate of the SWCompositor's TimeBase is not equal to zero, then this flag has no effect as the composite cycle is being controlled by the time-based rendering cycle.

  Regardless of the value of this flag, the SWCompositor will still redraw itself when the redraw method is called. This flag only controls whether the SWCompositor's member sprites will automatically redraw their parents.

  Parameters:
    `flag` - controls the auto redrawing capability of a SWCompositor. By default the auto-redrawing is set to true.

### idle

    protected void idle()
                 throws QTException

  This method can be called to explicitly force the SWCompositor to redraw itself. It does not ticke the Compositor - so no ticklish or invalidate actions will be performed. It will just force the internal QuickTime SpriteWorld to do a composit cycle and redraw those areas of the SpriteWorld which are invalid.

  In the normal course of operations an application does not need to call this method but it is particularly useful for profiling. It should only be called if the SpriteWorld that is presenting the SWCompositor is NOT null - otherwise a NullPointerException will be thrown.

### hitTest

    public java.lang.Object hitTest(int x,
                                    int y)
                             throws QTException

  Return the frontmost object that is located at the specified coordinates. Hit test coordinates will take into account the location of the space thus if the space is at 50, 50 and an object is located in the top,left of the space then the hit test coords for the first pixel of this object is 50, 50.
  Specified by:
    `hitTest` in interface `QTDisplaySpace`
  Parameters:
    `x` - the x coordinate
    `y` - the y coordinate
  Returns:
    an Object at that coordinate or null if no object at specified coordinate

### setClip

    public void setClip(Region clipRgn)
                 throws QTException

  This method sets the sprite world's clip.
  QuickTime::SetSpriteWorldClip()
Specified by:
  `setClip` in interface `QTDrawable`

  Parameters:
    `clipRgn` - Specifies the clipping region.

### getClip

    public Region getClip()

  Returns the current clipping region used by the sprite world
  Specified by:
    `getClip` in interface `QTDrawable`
  Returns:
    the current clip region.

### tickle

    public boolean tickle(float er,
                          int time)
                   throws QTException

  Description copied from interface: `Ticklish`
  The Timer invokes the tickle method when the invocation constraints of the Timer are reached.
  Specified by:
    `tickle` in interface `Ticklish`
  Overrides:
    `tickle` in class `SimpleSpace`
  Following copied from interface: `quicktime.app.time.Ticklish`
  Parameters:
    `er` - the effective rate of the Timer when the time condition matches
    `time` - the time that the Timer invoked the tickle method.
  Returns:
    true if the Ticklish object should receive a consequent tickle, or false if the Ticklish object should not be tickled again.

### removedFromCompositor

    public void removedFromCompositor(SWCompositor c)
                               throws QTException

  When a dynamic image class is removed from a SWCompositor this method is called to allow the class to cleanup any of the invalidation processes it had established in the addedToCompositor call.
  Specified by:
    `removedFromCompositor` in interface `DynamicImage`
  Parameters:
    `c` - the SWCompositor it is being removed from

### addedToCompositor

    public Invalidator addedToCompositor(SWCompositor c,
                                         TwoDSprite s)
                                  throws QTException

  Returns an object that invalidates a sprite. When a DynamicImage is a member of a SWompositor and the DynamicImage presents a changing image (for example a movie), the TwoDSprite that presents that image in the SWCompositor must be invalidated so that it will redraw the Sprites image in the next composit cycle. The Invalidator object is used to perform this function by the SWCompositor if the object itself cannot perform the invalidation. Can return null if the DynamicImage does not require the SWCompositor to invalidate it (or the object is in a state where its image won't change).

  The Invalidators provided with objects that implement the DynamicImage interface will execute at the scale and period of the Compositor when they are created.

  Specified by:
    `addedToCompositor` in interface `DynamicImage`
  Parameters:
    `c` - the Compositor in which the DynamicImage is a member
    `s` - the TwoDSprite that is presenting the DynamicImage's image in the Compositor. This is the sprite that must be invalidated.
  Returns:
    an Invalidator or null if invalidation is not required
  See Also:
    `quicktime.app.display.SWCompositor`

### getGraphicsMode

    public GraphicsMode getGraphicsMode()

  Sets the graphics mode of the SpriteDisplay object - this will be restored on each subsequent creation of the internal SpriteWorld. This may be null if not specified
  Specified by:
    `getGraphicsMode` in interface `Compositable`
  Returns:
    the current graphics mode or null

### setGraphicsMode

    public void setGraphicsMode(GraphicsMode mode)
                         throws QTException

  Sets the current graphics mode.
  Specified by:
    `setGraphicsMode` in interface `Compositable`
  Parameters:
    `mode` - the new graphics mode

### getMemberSprite

    public abstract TwoDSprite getMemberSprite(java.lang.Object member)

  This method returns the TwoDSprite presenter that is presenting the image data of the given member. It returns null if the object is not a member.
  Parameters:
    `member` - the member object
  Returns:
    the member's TwoDSprite presenter

### sprites

    public abstract java.util.Enumeration sprites()

  This returns an Enumeration that allows your application to iterate over the TwoDSprite presenters that are responsible for presenting the image data within the Compositor.
  Returns:
    an Enumeration;

### getSpriteMember

    public abstract java.lang.Object getSpriteMember(TwoDSprite sprite)

  This method returns the member that is being presented by the supplied TwoDSprite presenter. It returns null if the TwoDSprite is not present in the Compositor.
  Parameters:
    `sprite` - the TwoDSprite presenter
  Returns:
    the member that is being presented by the supplied TwoDSprite presenter

### getCompositable

    public Compositable getCompositable(java.lang.Object member)

  This will return the TwoDSprite for the member as a Compositable object to enable an application to get and set the graphics mode presentation of the member object.
  Parameters:
    `member` - the member object
  Returns:
    the member's TwoDSprite presenter

### getLayerable

    public Layerable getLayerable(java.lang.Object member)

  This will return the TwoDSprite for the member as a Layerable object to enable an application to get and set the layer presentation of the member object.
  Specified by:
    `getLayerable` in interface `QTDisplaySpace`
  Parameters:
    `member` - the member object
  Returns:
    the member's TwoDSprite presenter

### getTransformable

    public Transformable getTransformable(java.lang.Object member)

  This will return the TwoDSprite for the member as a Transformable object to enable an application to get and set the display presentation (its location, scale, etc) of the member object.
  Specified by:
    `getTransformable` in interface `QTDisplaySpace`
  Parameters:
    `member` - the member object
  Returns:
    the member's TwoDSprite presenter

### postProcessAdd

    protected void postProcessAdd(java.lang.Object member,
                                  TwoDSprite s)
                           throws QTException

  This method should be called by the subclass after the member has been added to the SWCompositor. If the member is itself a TwoDSprite the member and s arguments should be the TwoDSprite object. If the member is an instance of the DynamicImage interface then the addedToCompositor method will be called on the member and if required the member can return an Invalidator object which is then added to the SWCompositor's Invalidator list. This list is the last list run before the SpriteWorld's composit cycle is run. If the member is an instance of Notifier then the TwoDSprite will be set as the NotifyListener of the member and the member can then notify the TwoDSprite when its image data is valid and the TwoDSprite can present it.
  Parameters:
    `member` - the new member that has been added.
    `s` - the TwoDSprite that will present this member

### postProcessRemove

    protected void postProcessRemove(java.lang.Object member,
                                     TwoDSprite s)
                              throws QTException

  This method should be called by the subclass before the member has been removed from the SWCompositor. If the member is itself a TwoDSprite the member and s arguments should be the TwoDSprite object. If the member is an instance of the DynamicImage interface then the removedFromCompositor method will be called on the member allowing the member to cleanup its invalidation requirements. If the member had required invalidation then its Invalidator object will be removed from the Invalidator list.
  Parameters:
    `member` - the new member that has been removed.
    `s` - the TwoDSprite that presented this member

### saveMembers

    protected void saveMembers()
                        throws QTException

  This method is called if a SpriteWorld has previously been created and the destination QDGraphics or QDGraphics is about to go away (such as removing a SpriteWorld from a QTCanvas). Any Spirte objects that were attached to the sprite world will be invalid after this call so you should ensure that you remove any possibility of a method being called on any of these sprites. If sprites and or an action list has been added to the Compositor then those sprites will be saved and reinstantiated if a consequent createSprites method is received.

### createMembers

    protected void createMembers()
                          throws QTException

  This method is called after the Compositor has been added to a valid QDGraphics and the sprites can be added to the spriteworld. Any sprites that the Compositor knows about through an action list or sprites being explicitly added, will be recreated at this point. If a subclass overrides this method to create sprites on an initial call and add them to the Compositor then on subsequent calls the subclass should call super.createSprites to ensure that the previous sprites are recreated.

### toString

    public java.lang.String toString()

  Return a string representation of this object.
  Overrides:
    `toString` in class `java.lang.Object`
  Returns:
    a String

### addDrawingListener

    public void addDrawingListener(DrawingListener listener)

  Registers an object as a listener of the Compositor. The object will receive notification when the Compositor draws a frame
  Specified by:
    `addDrawingListener` in interface `DrawingNotifier`
  Following copied from interface: `quicktime.app.display.DrawingNotifier`
  Parameters:
    `source` - the object that is to be the source of interest for the the Listener object.

### removeDrawingListener

    public void removeDrawingListener(DrawingListener listener)

  Removes an object that is a listener of the Compositor. The object will no longer receive notification when the Compositor draws a frame
  Specified by:
    `removeDrawingListener` in interface `DrawingNotifier`
  Following copied from interface: `quicktime.app.display.DrawingNotifier`
  Parameters:
    `source` - the object that is to be the source of interest for the the Listener object.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD