Class TeaMediaLoader

java.lang.Object
nl.colorize.multimedialib.renderer.teavm.TeaMediaLoader
All Implemented Interfaces:
MediaLoader

public class TeaMediaLoader extends Object implements MediaLoader
Delegates media loading to the browser. Images, audio, and fonts are loaded using the conventional browser APIs. Text files are embedded into the HTML during the build, and can therefore be loaded immediately.
  • Constructor Details

    • TeaMediaLoader

      protected TeaMediaLoader()
  • 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, int size, ColorRGB color)
      Description copied from interface: MediaLoader
      Loads a TrueType or FreeType font so the renderer can use that font for text rendering. This will return a font for the specified style, alternative styles can be derived from the returned font.
      Specified by:
      loadFont 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
    • 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
    • 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
    • normalizeFilePath

      protected String normalizeFilePath(FilePointer file, boolean replaceDot)
    • 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
    • getLoadStatus

      public nl.colorize.util.MessageQueue<LoadStatus> getLoadStatus()
      Description copied from interface: MediaLoader
      Returns a buffer containing the load status of all media files that have been loaded by this MediaLoader.
      Specified by:
      getLoadStatus in interface MediaLoader
    • applyMask

      public org.teavm.jso.dom.html.HTMLCanvasElement applyMask(TeaImage image, ColorRGB mask)
      Creates an alternative version of the image with the specified mask color applied to every non-transparent pixel. This is a relatively heavy operation, so masked images are cached to avoid having to create them every single frame.