Interface Skin

All Superinterfaces:
Dimensioned, Renderable
All Known Implementing Classes:
AnimatedParticle, AnimatedSkin, AnimatedSprite, BaseSprite, CircleSkin, ExplosionParticle, GenericParticle, ImageSkin, ImageSprite, Particle, ParticleSprite, ParticleSprite.Images, ParticleSprite.Transforming, PolygonSkin, PrimitiveSkin, RegPolygonSkin, RenderedTextSkin, SprayParticle, Sprite, SquareSkin, SubImageSkin, SwarmParticle, TextSkin, TextSprite, TriangleSkin

public interface Skin
extends Renderable, Dimensioned

Basically, a skin is a lightweight rendering component. It adds a little more definition to Renderable by having a "space" it contains, represented by a width and a height. Skins should be as lightweight as possible; they should not themselves control rendering data (such as images) but should instead access and reference it. For example, a Skin that renders an image should retrieve the image it needs from the Cache, instead of creating one for itself. (This also allows multiple skins to share data.) Game objects should delegate their rendering to skins instead of managing it themselves, if possible. This makes the functionality more modular, and can allow the objects to change from one skin to another without any cost to themselves. A Skin should not affect the GLModelviewMatrix for its rendering unless necessary, and it should never make a lasting change. It's intended that an object using a Skin should first translate, scale, or rotate OpenGL as necessary and then render the skin.

Chris Molini

Method Summary
Methods inherited from interface org.jrabbit.base.core.types.Renderable
Methods inherited from interface
height, width