All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.flixel.gles20.FlxShaderProgram Maven / Gradle / Ivy

The newest version!
package org.flixel.gles20;

import org.flixel.event.IFlxShaderProgram;

import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.glutils.ShaderProgram;

/**
 * A shader program encapsulates a vertex and fragment shader pair linked to
 * form a shader program usable with OpenGL ES 2.0.
 * It restores the shader settings when the context is lost.
 * 
 * @author Ka Wing Chin
 */
public class FlxShaderProgram extends ShaderProgram
{
	/**
	 * The callback that will be fired when the game resume.
	 */
	public IFlxShaderProgram callback;

	/**
	 * Creates a ManagedShaderData object.
	 * 
	 * @param	VertexShader	The path to the vertexShader.
	 * @param	FragmentShader	The path to the fragmentShader.
	 * @param	Callback		The callback that will be used on resume.
	 */
	public FlxShaderProgram(String VertexShader, String FragmentShader, IFlxShaderProgram Callback)
	{
		super(VertexShader, FragmentShader);
		callback = Callback;
	}

	/**
	 * Creates a ManagedShaderData object.
	 * 
	 * @param	VertexShader	The path to the vertexShader.
	 * @param	FragmentShader	The path to the fragmentShader.
	 * @param	Callback		The callback that will be used on resume.
	 */
	public FlxShaderProgram(FileHandle VertexShader, FileHandle FragmentShader, IFlxShaderProgram Callback)
	{
		this(VertexShader.readString(), FragmentShader.readString(), Callback);
	}

	/**
	 * Load the shader settings.
	 */
	public void loadShaderSettings()
	{
		if(callback != null)
			callback.loadShaderSettings(this);
	}

	@Override
	public void dispose()
	{
		super.dispose();
		callback = null;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy