Class BasicWWTexture

  • All Implemented Interfaces:
    WWTexture

    public class BasicWWTexture
    extends java.lang.Object
    implements WWTexture
    Basic implementation of a texture derived from an image source such as an image file or a BufferedImage.

    The interface contains a method, isTextureInitializationFailed() to determine whether the instance failed to convert an image source to a texture. If such a failure occurs, the method returns true and no further attempts are made to create the texture.

    This class retrieves its image source immediately during a call to bind(DrawContext) or applyInternalTransform(DrawContext).

    See Also:
    LazilyLoadedTexture
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.Integer height  
      protected com.jogamp.opengl.util.texture.TextureCoords texCoords  
      protected boolean textureInitializationFailed  
      protected java.lang.Integer width  
    • Constructor Summary

      Constructors 
      Constructor Description
      BasicWWTexture​(java.lang.Object imageSource)
      Constructs a texture object.
      BasicWWTexture​(java.lang.Object imageSource, boolean useMipMaps)
      Constructs a texture object from an image source.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void applyInternalTransform​(DrawContext dc)
      Applies any necessary transformations to the texture prior to its being rendered.
      boolean bind​(DrawContext dc)
      Makes this texture the current texture for rendering.
      int getHeight​(DrawContext dc)
      Returns the texture's height
      java.lang.Object getImageSource()
      Returns the texture's image source.
      com.jogamp.opengl.util.texture.TextureCoords getTexCoords()
      Returns the texture's texture coordinates, which may be other than [0,0],[1,1] if the texture size is not a power of two or the texture must be flipped when rendered.
      protected com.jogamp.opengl.util.texture.Texture getTexture​(DrawContext dc, boolean initialize)  
      protected com.jogamp.opengl.util.texture.Texture getTextureFromCache​(DrawContext dc)  
      int getWidth​(DrawContext dc)
      Returns the texture's width.
      protected void initialize​(java.lang.Object imageSource, boolean useMipMaps)  
      protected com.jogamp.opengl.util.texture.Texture initializeTexture​(DrawContext dc, java.lang.Object imageSource)  
      boolean isTextureCurrent​(DrawContext dc)
      Indicates whether the texture is currently available for use without regenerating it from its image source.
      boolean isTextureInitializationFailed()
      Indicates whether an attempt to initialize the texture failed, which occurs when the image source is a non-existent image file or for other reasons specific to the image source.
      boolean isUseAnisotropy()
      Indicates whether texture anisotropy is applied to the texture when rendered.
      boolean isUseMipMaps()
      Indicates whether the texture creates and uses mipmaps.
      void setUseAnisotropy​(boolean useAnisotropy)
      Specifies whether texture anisotropy is applied to the texture when rendered.
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • width

        protected java.lang.Integer width
      • height

        protected java.lang.Integer height
      • texCoords

        protected com.jogamp.opengl.util.texture.TextureCoords texCoords
      • textureInitializationFailed

        protected boolean textureInitializationFailed
    • Constructor Detail

      • BasicWWTexture

        public BasicWWTexture​(java.lang.Object imageSource,
                              boolean useMipMaps)
        Constructs a texture object from an image source.

        The texture's image source is opened, if a file, only when the texture is displayed. If the texture is not displayed the image source is not read.

        Parameters:
        imageSource - the source of the image, either a file path String or a BufferedImage.
        useMipMaps - Indicates whether to generate and use mipmaps for the image.
        Throws:
        java.lang.IllegalArgumentException - if the imageSource is null.
      • BasicWWTexture

        public BasicWWTexture​(java.lang.Object imageSource)
        Constructs a texture object.

        The texture's image source is opened, if a file, only when the texture is displayed. If the texture is not displayed the image source is not read.

        Parameters:
        imageSource - the source of the image, either a file path String or a BufferedImage.
        Throws:
        java.lang.IllegalArgumentException - if the imageSource is null.
    • Method Detail

      • initialize

        protected void initialize​(java.lang.Object imageSource,
                                  boolean useMipMaps)
      • getImageSource

        public java.lang.Object getImageSource()
        Description copied from interface: WWTexture
        Returns the texture's image source.
        Specified by:
        getImageSource in interface WWTexture
        Returns:
        the texture's image source.
      • getWidth

        public int getWidth​(DrawContext dc)
        Description copied from interface: WWTexture
        Returns the texture's width.
        Specified by:
        getWidth in interface WWTexture
        Parameters:
        dc - the current draw context
        Returns:
        the texture's width, or 0 if the texture's size is currently unknown.
      • getHeight

        public int getHeight​(DrawContext dc)
        Description copied from interface: WWTexture
        Returns the texture's height
        Specified by:
        getHeight in interface WWTexture
        Parameters:
        dc - the current draw context
        Returns:
        the texture's height, or 0 if the texture's size is currently unknown.
      • isUseMipMaps

        public boolean isUseMipMaps()
        Indicates whether the texture creates and uses mipmaps.
        Returns:
        true if mipmaps are used, false if not.
      • getTexCoords

        public com.jogamp.opengl.util.texture.TextureCoords getTexCoords()
        Description copied from interface: WWTexture
        Returns the texture's texture coordinates, which may be other than [0,0],[1,1] if the texture size is not a power of two or the texture must be flipped when rendered.
        Specified by:
        getTexCoords in interface WWTexture
        Returns:
        returns the texture's texture coordinates.
      • isTextureCurrent

        public boolean isTextureCurrent​(DrawContext dc)
        Description copied from interface: WWTexture
        Indicates whether the texture is currently available for use without regenerating it from its image source.
        Specified by:
        isTextureCurrent in interface WWTexture
        Parameters:
        dc - the current draw context
        Returns:
        true if the texture is available and consistent with its image source, otherwise false.
      • isUseAnisotropy

        public boolean isUseAnisotropy()
        Indicates whether texture anisotropy is applied to the texture when rendered.
        Returns:
        useAnisotropy true if anisotropy is to be applied, otherwise false.
      • setUseAnisotropy

        public void setUseAnisotropy​(boolean useAnisotropy)
        Specifies whether texture anisotropy is applied to the texture when rendered.
        Parameters:
        useAnisotropy - true if anisotropy is to be applied, otherwise false.
      • isTextureInitializationFailed

        public boolean isTextureInitializationFailed()
        Description copied from interface: WWTexture
        Indicates whether an attempt to initialize the texture failed, which occurs when the image source is a non-existent image file or for other reasons specific to the image source.
        Specified by:
        isTextureInitializationFailed in interface WWTexture
        Returns:
        true if texture initialization failed, otherwise false.
      • getTexture

        protected com.jogamp.opengl.util.texture.Texture getTexture​(DrawContext dc,
                                                                    boolean initialize)
      • getTextureFromCache

        protected com.jogamp.opengl.util.texture.Texture getTextureFromCache​(DrawContext dc)
      • bind

        public boolean bind​(DrawContext dc)
        Description copied from interface: WWTexture
        Makes this texture the current texture for rendering.

        If the implementing instance's internal texture has not been created from its image source, the implementing class determines when the texture is retrieved and available.

        If a texture cannot be created from its image source it cannot be bound. This method returns an indication of whether the texture was bound or was not bound due to a failure during creation.

        Specified by:
        bind in interface WWTexture
        Parameters:
        dc - the current draw context.
        Returns:
        true if the texture was bound, otherwise false.
      • applyInternalTransform

        public void applyInternalTransform​(DrawContext dc)
        Description copied from interface: WWTexture
        Applies any necessary transformations to the texture prior to its being rendered. A common transformation is mapping texture coordinates from a flipped or non-square state to conventionally oriented OpenGL values.
        Specified by:
        applyInternalTransform in interface WWTexture
        Parameters:
        dc - the current draw context.
      • initializeTexture

        protected com.jogamp.opengl.util.texture.Texture initializeTexture​(DrawContext dc,
                                                                           java.lang.Object imageSource)