Package com.jogamp.opengl.util.texture
Class ImageSequence
java.lang.Object
com.jogamp.opengl.util.texture.ImageSequence
- All Implemented Interfaces:
TextureSequence
Simple
TextureSequence implementation
allowing existing textures
or image streams
to be used and replayed as frames.-
Nested Class Summary
Nested classes/interfaces inherited from interface com.jogamp.opengl.util.texture.TextureSequence
TextureSequence.TexSeqEventListener<T extends TextureSequence>, TextureSequence.TextureFrame -
Field Summary
Fields inherited from interface com.jogamp.opengl.util.texture.TextureSequence
sampler2D, samplerExternalOES -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal voidfinal voidvoidfinal intgetFrame(int idx) final intReturns the last updated texture.final booleangetNextTexture(GL gl) Returns the next texture to be rendered.In case a shader extension is required, based on the implementation and the runtime GL profile, this method returns the preprocessor macros, e.g.:intReturns the hash code of the strings:TextureSequence.getTextureLookupFragmentShaderImpl()TextureSequence.getTextureSampler2DType()Returns the complete texture2D lookup function code of typegetTextureLookupFunctionName(String desiredFuncName) int[]Returns eithersampler2DorsamplerExternalOESdepending onTextureSequence.getLastTexture().getTexture().getTarget().intReturns the texture target used by implementation.intReturn the texture unit used to render the current frame.int[]booleanReturns true if texture source is ready and a texture is available viaTextureSequence.getNextTexture(GL)andTextureSequence.getLastTexture().final voidsetCurrentIdx(int idx) final voidsetManualStepping(boolean v) voidsetParams(int magFilter, int minFilter, int wrapS, int wrapT)
-
Constructor Details
-
ImageSequence
public ImageSequence(int textureUnit, boolean useBuildInTexLookup)
-
-
Method Details
-
setParams
public void setParams(int magFilter, int minFilter, int wrapS, int wrapT) -
addFrame
-
addFrame
public final void addFrame(GL gl, Class<?> context, String imageResourcePath, String imageSuffix) throws IOException - Throws:
IOException
-
getFrameCount
public final int getFrameCount() -
getCurrentIdx
public final int getCurrentIdx() -
setCurrentIdx
- Throws:
IndexOutOfBoundsException
-
setManualStepping
public final void setManualStepping(boolean v) -
getManualStepping
public final boolean getManualStepping() -
getFrame
-
destroy
- Throws:
GLException
-
getTextureTarget
public int getTextureTarget()Description copied from interface:TextureSequenceReturns the texture target used by implementation.- Specified by:
getTextureTargetin interfaceTextureSequence
-
getTextureUnit
public int getTextureUnit()Description copied from interface:TextureSequenceReturn the texture unit used to render the current frame.- Specified by:
getTextureUnitin interfaceTextureSequence
-
getTextureMinMagFilter
public int[] getTextureMinMagFilter()- Specified by:
getTextureMinMagFilterin interfaceTextureSequence
-
getTextureWrapST
public int[] getTextureWrapST()- Specified by:
getTextureWrapSTin interfaceTextureSequence
-
isTextureAvailable
public boolean isTextureAvailable()Description copied from interface:TextureSequenceReturns true if texture source is ready and a texture is available viaTextureSequence.getNextTexture(GL)andTextureSequence.getLastTexture().- Specified by:
isTextureAvailablein interfaceTextureSequence
-
getLastTexture
Description copied from interface:TextureSequenceReturns the last updated texture.In case the instance is just initialized, it shall return a
Not blocking.TextureFrameobject with valid attributes. The texture content may be undefined until the first call ofTextureSequence.getNextTexture(GL).
- Specified by:
getLastTexturein interfaceTextureSequence- Throws:
IllegalStateException- if instance is not initialized
-
getNextTexture
Description copied from interface:TextureSequenceReturns the next texture to be rendered.Implementation shall return the next frame if available, may block if a next frame may arrive soon. Otherwise implementation shall return the last frame.
Shall return
nullin case no next or last frame is available.- Specified by:
getNextTexturein interfaceTextureSequence- Throws:
IllegalStateException- if instance is not initialized
-
getRequiredExtensionsShaderStub
Description copied from interface:TextureSequenceIn case a shader extension is required, based on the implementation and the runtime GL profile, this method returns the preprocessor macros, e.g.:#extension GL_OES_EGL_image_external : enable
- Specified by:
getRequiredExtensionsShaderStubin interfaceTextureSequence- Throws:
IllegalStateException- if instance is not initialized
-
getTextureSampler2DType
Description copied from interface:TextureSequenceReturns eithersampler2DorsamplerExternalOESdepending onTextureSequence.getLastTexture().getTexture().getTarget().- Specified by:
getTextureSampler2DTypein interfaceTextureSequence- Throws:
IllegalStateException- if instance is not initialized
-
getTextureLookupFunctionName
- Specified by:
getTextureLookupFunctionNamein interfaceTextureSequence- Parameters:
desiredFuncName- desired lookup function name. Ifnullor ignored by the implementation, a build-in name is returned.- Returns:
- the final lookup function name
- Throws:
IllegalStateException- if instance is not initialized
-
getTextureLookupFragmentShaderImpl
Description copied from interface:TextureSequenceReturns the complete texture2D lookup function code of typevec4 funcName(in getTextureSampler2DType() image, in vec2 texCoord) { vec4 texColor = do_something_with(image, texCoord); return texColor; }funcName can be negotiated and queried via
Note: This function may return an empty string in case a build-in lookup function is being chosen. If the implementation desires so,TextureSequence.getTextureLookupFunctionName(String).TextureSequence.getTextureLookupFunctionName(String)will ignore the desired function name and returns the build-in lookup function name.- Specified by:
getTextureLookupFragmentShaderImplin interfaceTextureSequence- Throws:
IllegalStateException- if instance is not initialized- See Also:
-
getTextureFragmentShaderHashCode
public int getTextureFragmentShaderHashCode()Description copied from interface:TextureSequenceReturns the hash code of the strings:Returns zero if
The returned hash code allows selection of a matching shader program for thistexture is not available.TextureSequenceinstance.Implementation shall cache the resulting hash code, which must be reset to zero if
texture is not available.- Specified by:
getTextureFragmentShaderHashCodein interfaceTextureSequence
-