Android Open Source - TinyVoxel Shader Manager






From Project

Back to project page TinyVoxel.

License

The source code is released under:

GNU General Public License

If you think the Android project TinyVoxel listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.toet.TinyVoxel.Shaders;
// www. j a  va  2  s.co m
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.glutils.ShaderProgram;
import com.toet.TinyVoxel.Config;
import com.toet.TinyVoxel.Debug.LogHandler;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by Kajos on 3-1-14.
 */
public class ShaderManager {
    private static ShaderManager instance;

    public static ShaderManager get() {
        if (instance == null)
            instance = new ShaderManager();

        return instance;
    }

    public static void refresh() {
        instance = null;
    }

    private Map<String, ShaderProgram> programs = new HashMap<String, ShaderProgram>();

    private ShaderProgram init(String frag, String vert) {
        LogHandler.log("Init frag: " + frag);
        LogHandler.log("Init vert: " + vert);

        FileHandle vFile = Gdx.files.internal(vert);
        FileHandle fFile = Gdx.files.internal(frag);
        if (!vFile.exists() || !fFile.exists()) {
            LogHandler.throwEx("Shaders file not found!: " + frag + ", " + vert);
        }

        ShaderProgram sh = new ShaderProgram(vFile, fFile);
        if (sh.isCompiled() == false) {
            LogHandler.throwEx("Frag: " + frag + " Vert: " + vert + "--" + sh.getLog());
        }

        if (Config.ENABLE_ERROR_HANDLER) {
            LogHandler.log("Frag: " + frag + " Vert: " + vert);
            LogHandler.log(sh.getLog());
        }

        //ErrorHandler.log(sh.getLog());
        sh.pedantic = false;
        String name = frag + "|" + vert;
        programs.remove(name);
        programs.put(name, sh);
        return sh;
    }

    public void reloadAll() {
        String[] keys =  programs.keySet().toArray(new String[0]);

        for (int i = 0; i < keys.length; i++) {
            String val[] = keys[i].split("\\|");
            init(val[0], val[1]);
        }
    }

    public ShaderProgram getShader(String frag, String vert) {
        ShaderProgram sh = programs.get(frag + "|" + vert);
        if (sh != null)
            return sh;
        else
            return init(frag, vert);
    }

    public static void disposeAll() {
        if (instance == null)
            return;

        for (ShaderProgram sh : instance.programs.values()) {
            sh.dispose();
        }
    }
}




Java Source Code List

com.badlogic.gdx.backends.gwt.GwtApplicationConfiguration.java
com.badlogic.gdx.backends.gwt.GwtApplication.java
com.badlogic.gdx.backends.gwt.GwtGL20.java
com.badlogic.gdx.backends.gwt.GwtInput.java
com.badlogic.gdx.backends.gwt.GwtNet.java
com.badlogic.gdx.graphics.Pixmap.java
com.toet.TinyVoxel.Config.java
com.toet.TinyVoxel.Game.java
com.toet.TinyVoxel.IOSConfig.java
com.toet.TinyVoxel.IOSLauncher.java
com.toet.TinyVoxel.OuyaController.java
com.toet.TinyVoxel.Time.java
com.toet.TinyVoxel.Character.Character.java
com.toet.TinyVoxel.Debug.LogHandler.java
com.toet.TinyVoxel.GameControllers.CharacterController.java
com.toet.TinyVoxel.GameControllers.CustomTouchPad.java
com.toet.TinyVoxel.GameControllers.KeyBoardController.java
com.toet.TinyVoxel.GameControllers.TouchPadController.java
com.toet.TinyVoxel.Importer.BinvoxImporter.java
com.toet.TinyVoxel.Importer.DataInputStream.java
com.toet.TinyVoxel.Importer.MeshImporter.java
com.toet.TinyVoxel.Renderer.BlockBuilder.java
com.toet.TinyVoxel.Renderer.Floor.java
com.toet.TinyVoxel.Renderer.Manager.java
com.toet.TinyVoxel.Renderer.Bundles.ArrayBundle.java
com.toet.TinyVoxel.Renderer.Bundles.Bundle.java
com.toet.TinyVoxel.Renderer.Bundles.GridBundle.java
com.toet.TinyVoxel.Renderer.Bundles.GridInterface.java
com.toet.TinyVoxel.Renderer.Bundles.Grid.java
com.toet.TinyVoxel.Renderer.Bundles.GroundBundle.java
com.toet.TinyVoxel.Renderer.Bundles.SingleBundle.java
com.toet.TinyVoxel.Renderer.Bundles.TinyGrid.java
com.toet.TinyVoxel.Renderer.Tools.BrushUtils.java
com.toet.TinyVoxel.Renderer.Tools.GridUtils.java
com.toet.TinyVoxel.Renderer.Wrapped.WrappedBoolean.java
com.toet.TinyVoxel.Renderer.Wrapped.WrappedInteger.java
com.toet.TinyVoxel.Screens.GUI.java
com.toet.TinyVoxel.Screens.Menu.java
com.toet.TinyVoxel.Shaders.ShaderManager.java
com.toet.TinyVoxel.Shadow.ShadowManager.java
com.toet.TinyVoxel.Util.Box.java
com.toet.TinyVoxel.Util.FullscreenQuad.java
com.toet.TinyVoxel.Util.JobManager.java
com.toet.TinyVoxel.Util.NonBackedTexture.java
com.toet.TinyVoxel.Util.Position.java
com.toet.TinyVoxel.Util.RLEInputStream.java
com.toet.TinyVoxel.Util.RLEOutputStream.java
com.toet.TinyVoxel.Util.SimpleMath.java
com.toet.TinyVoxel.Util.StreamUtil.java
com.toet.TinyVoxel.android.AndroidConfig.java
com.toet.TinyVoxel.android.AndroidConfig.java
com.toet.TinyVoxel.android.AndroidLauncher.java
com.toet.TinyVoxel.android.AndroidLauncher.java
com.toet.TinyVoxel.client.GwtConfig.java
com.toet.TinyVoxel.client.HtmlLauncher.java
com.toet.TinyVoxel.desktop.DesktopConfig.java
com.toet.TinyVoxel.desktop.DesktopLauncher.java