package com.indyforge.twod.engine.resources; import java.awt.HeadlessException; import java.awt.image.BufferedImage; import java.io.IOException; import com.indyforge.twod.engine.graphics.GraphicsRoutines; import com.indyforge.twod.engine.graphics.ImageDesc; import com.indyforge.twod.engine.resources.assets.AssetManager; /** * * @author Christopher Probst * */ public final class TransientBufferedImage implements Resource<BufferedImage> { /** * */ private static final long serialVersionUID = 1L; // The image description private final ImageDesc imageDesc; // The buffered image private transient BufferedImage image; private void createResource() { // Create resource image = !AssetManager.isHeadless() ? GraphicsRoutines .createImage(imageDesc) : null; } private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException { // Read default vars in.defaultReadObject(); // Create the resource createResource(); } public TransientBufferedImage(ImageDesc imageDesc) { if (imageDesc == null) { throw new NullPointerException("imageDesc"); } // Save parameters this.imageDesc = imageDesc; // Create the resource createResource(); } /* * (non-Javadoc) * * @see com.indyforge.twod.engine.resources.Resource#get() */ @Override public BufferedImage get() { if (AssetManager.isHeadless()) { throw new HeadlessException(); } return image; } }