Example usage for org.lwjgl.opengl GL20 GL_FRAGMENT_SHADER

List of usage examples for org.lwjgl.opengl GL20 GL_FRAGMENT_SHADER

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL20 GL_FRAGMENT_SHADER.

Prototype

int GL_FRAGMENT_SHADER

To view the source code for org.lwjgl.opengl GL20 GL_FRAGMENT_SHADER.

Click Source Link

Document

Accepted by the type argument of CreateShader and returned by the params parameter of GetShaderiv.

Usage

From source file:org.terasology.rendering.shader.ShaderProgram.java

License:Apache License

private void compileShader(int type) {

    int shaderId = GL20.glCreateShader(type);

    StringBuilder shader = Shader.createShaderBuilder();

    if (type == GL20.GL_FRAGMENT_SHADER)
        shader.append(Shader.getIncludedFunctionsFragment()).append("\n");
    else/*from   w  w w. j a  v a 2s.  c  o  m*/
        shader.append(Shader.getIncludedFunctionsVertex()).append("\n");

    String filename = title;

    if (type == GL20.GL_FRAGMENT_SHADER) {
        filename += "_frag.glsl";
    } else if (type == GL20.GL_VERTEX_SHADER) {
        filename += "_vert.glsl";
    }

    logger.debug("Loading shader {} ({}, type = {})", title, filename, String.valueOf(type));

    // Read in the shader code
    shader.append(readShader(filename));

    if (type == GL20.GL_FRAGMENT_SHADER) {
        fragmentProgram = shaderId;
    } else if (type == GL20.GL_VERTEX_SHADER) {
        vertexProgram = shaderId;
    }

    GL20.glShaderSource(shaderId, shader.toString());
    GL20.glCompileShader(shaderId);

    String error;
    if ((error = printLogInfo(shaderId)) != null) {
        JOptionPane.showMessageDialog(null,
                "Shader '" + title
                        + "' failed to compile. Terasology might not look quite as good as it should now...\n\n"
                        + error,
                "Shader compilation error", JOptionPane.ERROR_MESSAGE);
    }
}

From source file:ovh.tgrhavoc.gameengine.core.Shader.java

License:Open Source License

public void addFragmentShaderFromFile(String text) {
    addProgram(loadShaders(text), GL20.GL_FRAGMENT_SHADER);
}

From source file:ovh.tgrhavoc.gameengine.core.Shader.java

License:Open Source License

public void addFragmentShader(String text) {
    addProgram(text, GL20.GL_FRAGMENT_SHADER);
}

From source file:renderEngine.ShaderProgram.java

/**
 * Creates a new instance of ShaderProgram, and links the program.
 *
 * @param vertexFile The relative location of the vertex shader file.
 * @param fragmentFile The relative location of the fragment shader file.
 */// ww w.  j av  a2s  . c  o m
public ShaderProgram(String vertexFile, String fragmentFile) {
    this.vertexShaderID = loadShader(vertexFile, GL20.GL_VERTEX_SHADER);
    this.fragmentShaderID = loadShader(fragmentFile, GL20.GL_FRAGMENT_SHADER);

    this.programID = GL20.glCreateProgram();
    GL20.glAttachShader(programID, vertexShaderID);
    GL20.glAttachShader(programID, fragmentShaderID);
    bindVariablesAndValidate();
}

From source file:samples.ShaderSample.ShaderSample.java

License:Apache License

@Override
public void drawScene() {
    //Create a new Scene we can override
    Scene myScene = new Scene(this.getName()) {
        @Override/*from ww w . ja v  a 2 s  .co m*/
        public void tick() {
            super.tick();

            Light l = this.getDisplayManager().getLightsList().get(0);
            double speed = 0.05;
            if (Keyboard.isKeyDown(Keyboard.KEY_LEFT)) {
                l.getLocation().addX(speed);
            }

            if (Keyboard.isKeyDown(Keyboard.KEY_RIGHT)) {
                l.getLocation().addX(-speed);
            }

            if (Keyboard.isKeyDown(Keyboard.KEY_UP)) {
                l.getLocation().addZ(speed);
            }

            if (Keyboard.isKeyDown(Keyboard.KEY_DOWN)) {
                l.getLocation().addZ(-speed);
            }

            if (Keyboard.isKeyDown(Keyboard.KEY_W)) {
                l.getLocation().addY(speed);
            }

            if (Keyboard.isKeyDown(Keyboard.KEY_S)) {
                l.getLocation().addY(-speed);
            }

            for (Model m : this.getModels()) {
                if (m instanceof Plane)
                    continue;
                m.getLocation().addYaw(1).addPitch(1);
            }
        }
    };
    Scene.ACTIVE_SCENE = myScene;

    //Create some cubes
    SimpleMaterial mat = new SimpleMaterial();
    mat.setOutlined(true);
    mat.setOutlineColor(Color.PINK);
    int grid = 2;
    for (int x = -grid; x <= grid; x++) {
        for (int z = -grid; z <= grid; z++) {
            if (z == 0 && x == 0)
                continue;
            Model model = new Sphere();
            model.getLocation().setZ(z * 2d).setX(x * 2d);
            myScene.addModel(model);
            model.setMaterial(mat);
        }
    }

    Model cube = new Cube();
    try {
        Texture t = PNGTexture.loadFromResource("samples/TextureSample/brick.png", PNGDecoder.Format.RGBA);
        t.load();

        cube.getMaterial().setTexture(t);
        cube.getMaterial().setOutlined(true);
        cube.getMaterial().setOutlineThickness(10);
        cube.getMaterial().setOutlineColor(Color.GREEN);
        ((Cube) cube).reInit();
        myScene.addModel(cube);
    } catch (Exception e) {
        this.getLogger().log(e);
        cube.getMaterial().setColor(Color.RED);
    }

    Model plane = new Plane();
    plane.getMaterial().setColor(Color.BLUE);
    plane.setScale(10);
    plane.getLocation().setY(-1);
    //myScene.addModel(plane);

    //Create a light
    Light light = new SimpleLight();
    light.getLocation().set(2, .5, 0);
    this.getScene().addLight(light);

    //Load the Shader
    Shader toonFragShader = new Shader();
    Shader toonVertShader = new Shader();
    ShaderProgram toonShader = new ShaderProgram();
    try {
        toonFragShader.compile(FileUtilities.getResourceAsString("shaders/ToonShader/toon_shader.frag"),
                GL20.GL_FRAGMENT_SHADER);
        toonVertShader.compile(FileUtilities.getResourceAsString("shaders/ToonShader/toon_shader.vert"),
                GL20.GL_VERTEX_SHADER);
        toonShader.addShader(toonFragShader).addShader(toonVertShader);
        toonShader.compile();

        for (Model m : myScene.getModels()) {
            m.setShaderProgram(toonShader);
        }
    } catch (Exception e) {
        Game.GAME_INSTANCE.showWarning("Shader Error!", e.getMessage());
        this.forceClose(CloseReason.ERROR);
    }

    //Draw Axis, Lights and Grid
    this.getDisplayManager().drawAxis = true;
    this.getDisplayManager().clearColor = Color.BLACK;
    this.getDisplayManager().drawLights = true;
    this.getDisplayManager().showFPS = false;

    //Move Camera
    this.getScene().getCamera().setLocation(new Location(3, 3, 3));
}

From source file:se.angergard.engine.graphics.ShaderProgram.java

License:Apache License

public ShaderProgram addFragmentShader(String code) {
    return addShader(code, GL20.GL_FRAGMENT_SHADER);
}

From source file:se.angergard.engine.graphics.ShaderProgram.java

License:Apache License

private ShaderProgram addShader(String code, int type) {
    int shader = GL20.glCreateShader(type);
    GL20.glShaderSource(shader, code);/*from w w  w. j a  va2  s .c o  m*/
    GL20.glCompileShader(shader);

    if (type == GL20.GL_VERTEX_SHADER) {
        vertexShader = shader;
    }

    else if (type == GL20.GL_FRAGMENT_SHADER) {
        fragmentShader = shader;
    }

    else if (type == GL32.GL_GEOMETRY_SHADER) {
        geometryShader = shader;
    }

    String error = GL20.glGetShaderInfoLog(shader, GL20.GL_INFO_LOG_LENGTH);
    if (!error.equals("")) {
        System.out.println(error);
    }

    if (shader == -1) {
        System.err.println("Shader wasn't succsessfully created");
    }

    GL20.glAttachShader(program, shader);
    return this;
}

From source file:thebounzer.org.lwgldemo.Chapter3.java

License:Open Source License

@Override
public void configure() {
    shaders.add(new GenericShader("src/main/resources/shadersCap3/shader.vert", GL20.GL_VERTEX_SHADER));
    shaders.add(new GenericShader("src/main/resources/shadersCap3/shader.frag", GL20.GL_FRAGMENT_SHADER));
    shaderSetup();//from   w w  w .  jav a2 s .  c om
}

From source file:thebounzer.org.lwgldemo.Chapter5.java

License:Open Source License

@Override
public void configure() {
    shaders.add(new GenericShader("src/main/resources/shadersCap5/shader.vert", GL20.GL_VERTEX_SHADER));
    shaders.add(new GenericShader("src/main/resources/shadersCap5/shader.frag", GL20.GL_FRAGMENT_SHADER));
    vaoId = GL30.glGenVertexArrays();//from   ww w. jav  a2  s  .co m
    GL30.glBindVertexArray(vaoId);
    GL11.glPointSize(5.0f);
    try {
        createAndBindVertexObject(vertex);
    } catch (IOException ex) {
        Logger.getLogger(Chapter5.class.getName()).log(Level.SEVERE, null, ex);
    }
    shaderSetup();
    FloatBuffer matrixProjBuff = BufferUtils.createFloatBuffer(16);
    projMat.store(matrixProjBuff);
    matrixProjBuff.flip();
}

From source file:uk.co.ifs_studios.engine.shader.FragmentShader.java

License:Open Source License

/**
 * Load and compile shader.//from w ww  .  j  a  va2s.  co m
 */
public void load() {
    StringBuilder shaderSource = new StringBuilder();

    try {
        BufferedReader reader = new BufferedReader(new InputStreamReader(this.shaderStream));

        String line;
        while ((line = reader.readLine()) != null) {
            shaderSource.append(line).append("\n");
        }

        reader.close();
    } catch (FileNotFoundException e) {
        EngineLogger.error(new ShaderException("Shader file not found.", e));
    } catch (IOException e) {
        EngineLogger.error(new ShaderException("Couldn't read shader file.", e));
    }

    this.id = GL20.glCreateShader(GL20.GL_FRAGMENT_SHADER);
    GL20.glShaderSource(this.id, shaderSource);
    GL20.glCompileShader(this.id);
}