| Modifier and Type | Class and Description |
|---|---|
| private class |
| Modifier and Type | Field and Description |
|---|---|
| protected AffineTransform | atCurrent
A reference to the AffineTransform corresponding to the graphics configuration of the volatile image. |
| protected Object | context
Context for extra initialization parameters. |
| protected boolean | lostSurface
Tracks loss of surface contents; queryable by user to see whether contents need to be restored. |
| protected SurfaceData | sdAccel
The accelerated SurfaceData object. |
| protected SurfaceData | sdBackup
The software-based SurfaceData object. |
| protected SurfaceData | sdCurrent
The current SurfaceData object. |
| protected SurfaceData | sdPrevious
A record-keeping object. |
| protected SunVolatileImage | vImg
A reference to the VolatileImage whose contents are being managed. |
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public void | acceleratedSurfaceLost()
Overrides sun. If the accelerated surface is the current SurfaceData for this manager, sets the variable lostSurface to true, which indicates that something happened to the image under management. |
| public boolean | |
| public void | displayChanged()
Implements sun. Called from SunGraphicsEnv when there has been a display mode change. |
| public void | flush()
Overrides sun. Releases any associated hardware memory for this image by calling flush on sdAccel. |
| protected SurfaceData | |
| public ImageCapabilities | getCapabilities(GraphicsConfiguration gc)
Overrides sun. Returns an ImageCapabilities object which can be inquired as to the specific capabilities of this Image. |
| public SurfaceData | getPrimarySurfaceData()
Implements abstract sun. Returns the main SurfaceData object that "owns" the pixels for this SurfaceManager. |
| protected abstract SurfaceData | initAcceleratedSurface()
Creates a new accelerated surface that is compatible with the current GraphicsConfiguration. |
| public void | |
| public void | initialize()
This init function is separate from the constructor because the things we are doing here necessitate the object's existence. |
| protected abstract boolean | |
| protected boolean | isConfigValid(GraphicsConfiguration gc)
Called by validate() to see whether the GC passed in is ok for rendering to. |
| public void | paletteChanged()
Implements sun. When device palette changes, need to force a new copy of the image into our hardware cache to update the color indices of the pixels (indexed mode only). |
| protected void | |
| public SurfaceData | restoreContents()
Implements abstract sun. Called from a SurfaceData object, indicating that our accelerated surface has been lost and should be restored (perhaps using a backup system memory surface). |
| public int |
| atCurrent | back to summary |
|---|---|
| protected AffineTransform atCurrent A reference to the AffineTransform corresponding to the graphics configuration of the volatile image. Affine Transformation is usually derived from the screen device. During the displayChanged() callback, the existing transform is compared with the updated screen transform to determine whether the software backed surface needs to be re-created | |
| context | back to summary |
|---|---|
| protected Object context Context for extra initialization parameters. | |
| lostSurface | back to summary |
|---|---|
| protected boolean lostSurface Tracks loss of surface contents; queryable by user to see whether contents need to be restored. | |
| sdAccel | back to summary |
|---|---|
| protected SurfaceData sdAccel The accelerated SurfaceData object. | |
| sdBackup | back to summary |
|---|---|
| protected SurfaceData sdBackup The software-based SurfaceData object. Only create when first asked to (otherwise it is a waste of memory as it will only be used in situations of surface loss). | |
| sdCurrent | back to summary |
|---|---|
| protected SurfaceData sdCurrent The current SurfaceData object. | |
| sdPrevious | back to summary |
|---|---|
| protected SurfaceData sdPrevious A record-keeping object. This keeps track of which SurfaceData was in use during the last call to validate(). This lets us see whether the SurfaceData object has changed since then and allows us to return the correct returnCode to the user in the validate() call. | |
| vImg | back to summary |
|---|---|
| protected SunVolatileImage vImg A reference to the VolatileImage whose contents are being managed. | |
| VolatileSurfaceManager | back to summary |
|---|---|
| protected VolatileSurfaceManager(SunVolatileImage vImg, Object context) | |
| acceleratedSurfaceLost | back to summary |
|---|---|
| public void acceleratedSurfaceLost() Overrides sun. If the accelerated surface is the current SurfaceData for this manager, sets the variable lostSurface to true, which indicates that something happened to the image under management. This variable is used in the validate method to tell the caller that the surface contents need to be restored. | |
| contentsLost | back to summary |
|---|---|
| public boolean contentsLost() Returns true if rendering data was lost since the last validate call. | |
| displayChanged | back to summary |
|---|---|
| public void displayChanged() Implements sun. Called from SunGraphicsEnv when there has been a display mode change. Note that we simply invalidate hardware surfaces here; we do not attempt to recreate or re-render them. This is to avoid threading conflicts with the native toolkit and associated threads. Instead, we just nullify the old surface data object and wait for a future method in the rendering process to recreate the surface. | |
| flush | back to summary |
|---|---|
| public void flush() Overrides sun. Releases any associated hardware memory for this image by calling flush on sdAccel. This method forces a lostSurface situation so any future operations on the image will need to revalidate the image first. | |
| getBackupSurface | back to summary |
|---|---|
| protected SurfaceData getBackupSurface() Creates a software-based surface (of type BufImgSurfaceData). The software representation is only created when needed, which is only during some situation in which the hardware surface cannot be allocated. This allows apps to at least run, albeit more slowly than they would otherwise. | |
| getCapabilities | back to summary |
|---|---|
| public ImageCapabilities getCapabilities(GraphicsConfiguration gc) Overrides sun. Doc from sun. Returns an ImageCapabilities object which can be inquired as to the specific capabilities of this Image. The capabilities object will return true for isAccelerated() if the image has a current and valid SurfaceDataProxy object cached for the specified GraphicsConfiguration parameter. This class provides a default implementation of the ImageCapabilities that will try to determine if there is an associated SurfaceDataProxy object and if it is up to date, but only works for GraphicsConfiguration objects which implement the ProxiedGraphicsConfig interface defined below. In practice, all configs which can be accelerated are currently implementing that interface. A null GraphicsConfiguration returns a value based on whether the image is currently accelerated on its default GraphicsConfiguration.
| |
| getPrimarySurfaceData | back to summary |
|---|---|
| public SurfaceData getPrimarySurfaceData() Implements abstract sun. Doc from sun. Returns the main SurfaceData object that "owns" the pixels for this SurfaceManager. This SurfaceData is used as the destination surface in a rendering operation and is the most authoritative storage for the current state of the pixels, though other versions might be cached in other locations for efficiency. | |
| initAcceleratedSurface | back to summary |
|---|---|
| protected abstract SurfaceData initAcceleratedSurface() Creates a new accelerated surface that is compatible with the current GraphicsConfiguration. Returns the new accelerated SurfaceData object, or null if the surface creation was not successful. Platform-specific subclasses should initialize an accelerated surface (e.g. a DirectDraw surface on Windows, an OpenGL FBO, or an X11 pixmap). | |
| initContents | back to summary |
|---|---|
| public void initContents() Set contents of the current SurfaceData to default state (i.e. clear the background). | |
| initialize | back to summary |
|---|---|
| public void initialize() This init function is separate from the constructor because the things we are doing here necessitate the object's existence. Otherwise, we end up calling into a subclass' overridden method during construction, before that subclass is completely constructed. | |
| isAccelerationEnabled | back to summary |
|---|---|
| protected abstract boolean isAccelerationEnabled() Returns true if acceleration is enabled. If not, we simply use the backup SurfaceData object and return quickly from most methods in this class. | |
| isConfigValid | back to summary |
|---|---|
| protected boolean isConfigValid(GraphicsConfiguration gc) Called by validate() to see whether the GC passed in is ok for rendering to. This generic implementation checks to see whether the GC is either null or is from the same device as the one that this image was created on. Platform- specific implementations may perform other checks as appropriate. | |
| paletteChanged | back to summary |
|---|---|
| public void paletteChanged() Implements sun. When device palette changes, need to force a new copy of the image into our hardware cache to update the color indices of the pixels (indexed mode only). | |
| restoreAcceleratedSurface | back to summary |
|---|---|
| protected void restoreAcceleratedSurface() Restore sdAccel in case it was lost. Do nothing in this default case; platform-specific implementations may do more in this situation as appropriate. | |
| restoreContents | back to summary |
|---|---|
| public SurfaceData restoreContents() Implements abstract sun. Called from a SurfaceData object, indicating that our accelerated surface has been lost and should be restored (perhaps using a backup system memory surface). Returns the newly restored primary SurfaceData object. | |
| validate | back to summary |
|---|---|
| public int validate(GraphicsConfiguration gc) Get the image ready for rendering. This method is called to make sure that the accelerated SurfaceData exists and is ready to be used. Users call this method prior to any set of rendering to or from the image, to make sure the image is ready and compatible with the given GraphicsConfiguration. The image may not be "ready" if either we had problems creating it in the first place (e.g., there was no space in vram) or if the surface became lost (e.g., some other app or the OS caused vram surfaces to be removed). Note that we want to return RESTORED in any situation where the SurfaceData is different than it was last time. So whether it's software or hardware, if we have a different SurfaceData object, then the contents have been altered and we must reflect that change to the user. | |
| Access | Constructor and Description |
|---|---|
| pack-priv |
| Modifier and Type | Method and Description |
|---|---|
| public boolean | isAccelerated()
Overrides java. Returns |
| public boolean | isTrueVolatile()
Overrides java. Returns |
| AcceleratedImageCapabilities | back to summary |
|---|---|
| pack-priv AcceleratedImageCapabilities() | |
| isAccelerated | back to summary |
|---|---|
| public boolean isAccelerated() Overrides java. Doc from java. Returns
| |
| isTrueVolatile | back to summary |
|---|---|
| public boolean isTrueVolatile() Overrides java. Doc from java. Returns
| |