Example usage for com.badlogic.gdx.graphics.g3d.shaders BaseShader set

List of usage examples for com.badlogic.gdx.graphics.g3d.shaders BaseShader set

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics.g3d.shaders BaseShader set.

Prototype

public final boolean set(final int uniform, final GLTexture texture) 

Source Link

Usage

From source file:org.ah.gcode.preview.player.Renderer.java

License:Open Source License

public Renderer() {
    bottomShaderProvider = new DefaultShaderProvider() {

        DefaultShader currentLayerShader = null;

        @Override//from  w ww.j  a va 2 s.  co m
        protected Shader createShader(final Renderable renderable) {
            if (currentLayerHasMesh(renderable.mesh)) { // Current layer shader
                if (currentLayerShader == null) {
                    DefaultShader.Config config = new DefaultShader.Config(
                            Gdx.files.internal("shaders/lighting.current.vertex.glsl").readString(),
                            Gdx.files.internal("shaders/lighting.fragment.glsl").readString());
                    currentLayerShader = new DefaultShader(renderable, config);

                    currentLayerShader.register(new BaseShader.Uniform("u_number"),
                            new BaseShader.GlobalSetter() {
                                @Override
                                public void set(BaseShader shader, int inputID, Renderable renderable,
                                        Attributes combinedAttributes) {
                                    shader.set(inputID, getCurrentInstructionNo());
                                }
                            });
                }
                return currentLayerShader;
            } else { // Solid - below current layer shader
                DefaultShader.Config config = new DefaultShader.Config(
                        Gdx.files.internal("shaders/lighting.solid.vertex.glsl").readString(),
                        Gdx.files.internal("shaders/lighting.fragment.glsl").readString());
                DefaultShader defaultShader = new DefaultShader(renderable, config) {
                    @Override
                    public boolean canRender(final Renderable renderable) {
                        if (currentLayerHasMesh(renderable.mesh)) {
                            return false;
                        }
                        return true;
                    }
                };
                return defaultShader;
            }
        }
    };
    solidModelBatch = new ModelBatch(null, bottomShaderProvider, null);

    topShaderProvider = new DefaultShaderProvider(Gdx.files.internal("shaders/lighting.top.vertex.glsl"),
            Gdx.files.internal("shaders/lighting.fragment.glsl"));
    topModelBatch = new ModelBatch(null, topShaderProvider, null);
}