Class StandardMediaLoader

java.lang.Object
nl.colorize.multimedialib.renderer.java2d.StandardMediaLoader
All Implemented Interfaces:
MediaLoader
Direct Known Subclasses:
HeadlessMediaLoader

public class StandardMediaLoader extends Object implements MediaLoader
Uses APIs from the Java standard library to load media files: Java2D and ImageIO for loading images, Java Sound for loading audio clips, and AWT for loading fonts. These APIs are available on server and desktop platforms, but not on headless server environments and not on Android.
  • Field Details

    • fontFamilies

      public static Map<String,Font> fontFamilies
    • fontCache

      public static nl.colorize.util.stats.Cache<FontFace,Font> fontCache
  • Constructor Details

    • StandardMediaLoader

      public StandardMediaLoader()
      Creates a StandardMediaLoader that will look for resource files in the classpath, with a fallback to the local file system.
    • StandardMediaLoader

      public StandardMediaLoader(File resourceDir)
      Creates a StandardMediaLoader that will only look for resource files in the specified directory. This can be used for testing, where files are located in a temporary directory and not on the classpath.
  • Method Details

    • loadImage

      public Image loadImage(FilePointer file)
      Description copied from interface: MediaLoader
      Loads an image from a file. Images in JPEG and PNG format are supported by all renderers.
      Specified by:
      loadImage in interface MediaLoader
    • loadAudio

      public Audio loadAudio(FilePointer file)
      Description copied from interface: MediaLoader
      Loads an audio clip from a file. MP3 files are supported by all renderers.
      Specified by:
      loadAudio in interface MediaLoader
    • loadFont

      public FontFace loadFont(FilePointer file, String family, FontStyle style)
      Description copied from interface: MediaLoader
      Loads a TrueType or FreeType font and converts it to a format that can be used by the renderer. The loaded font will be attached to the font family name specified in the font style.
      Specified by:
      loadFont in interface MediaLoader
    • loadText

      public String loadText(FilePointer file)
      Description copied from interface: MediaLoader
      Loads a text-based resource file using UTF-8 encoding.
      Specified by:
      loadText in interface MediaLoader
    • loadModel

      public PolygonModel loadModel(FilePointer file)
      Description copied from interface: MediaLoader
      Loads a polygon model from the specified file. Only the GLTF format is guaranteed to be supported, other file formats are only supported by specific renderers.
      Specified by:
      loadModel in interface MediaLoader
    • getGeometryBuilder

      public GeometryBuilder getGeometryBuilder()
      Description copied from interface: MediaLoader
      Provides access to a GeometryBuilder instance that can be used to create simple 3D geometry in a programmatic way.
      Specified by:
      getGeometryBuilder in interface MediaLoader
    • containsResourceFile

      public boolean containsResourceFile(FilePointer file)
      Description copied from interface: MediaLoader
      Returns whether the specified resource file is available.
      Specified by:
      containsResourceFile in interface MediaLoader
    • getApplicationDataFile

      protected File getApplicationDataFile(String appName)
    • loadApplicationData

      public Properties loadApplicationData(String appName)
      Description copied from interface: MediaLoader
      Loads the application data for the application with the specified name. Application data is limited to key/value properties, as this type of data is supported by all platforms. Returns an empty Properties when no application data exists.
      Specified by:
      loadApplicationData in interface MediaLoader
    • saveApplicationData

      public void saveApplicationData(String appName, Properties data)
      Description copied from interface: MediaLoader
      Saves the application data for the application with the specified name. Application data is limited to key/value properties, as this type of data is supported by all platforms.
      Specified by:
      saveApplicationData in interface MediaLoader
    • toResourceFile

      public nl.colorize.util.ResourceFile toResourceFile(FilePointer file)