Example usage for org.lwjgl.opengl GL20 glGetUniformLocation

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

Introduction

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

Prototype

@NativeType("GLint")
public static int glGetUniformLocation(@NativeType("GLuint") int program,
        @NativeType("GLchar const *") CharSequence name) 

Source Link

Document

Returns the location of a uniform variable.

Usage

From source file:org.terasology.rendering.assets.Material.java

License:Apache License

public void setFloat3(String desc, float f1, float f2, float f3) {
    if (isDisposed())
        return;/*from   w  w  w  .j ava 2s. c o m*/

    enable();
    int id = GL20.glGetUniformLocation(shaderProgram, desc);
    if (id != -1) {
        GL20.glUniform3f(id, f1, f2, f3);
    }
}

From source file:org.terasology.rendering.assets.Material.java

License:Apache License

public void setFloat4(String desc, float f1, float f2, float f3, float f4) {
    if (isDisposed())
        return;/*from   w  w w  .  j a v  a2 s .  c o m*/

    enable();
    int id = GL20.glGetUniformLocation(shaderProgram, desc);
    if (id != -1) {
        GL20.glUniform4f(id, f1, f2, f3, f4);
    }
}

From source file:org.terasology.rendering.assets.Material.java

License:Apache License

public void setInt(String desc, int i) {
    if (isDisposed())
        return;/*from   w w w.java2 s.  com*/

    enable();
    int id = GL20.glGetUniformLocation(shaderProgram, desc);
    if (id != -1) {
        GL20.glUniform1i(id, i);
    }
}

From source file:org.terasology.rendering.assets.Material.java

License:Apache License

public void setFloat1(String desc, FloatBuffer buffer) {
    if (isDisposed())
        return;/*from w  w  w  .  jav a2s.  c o  m*/

    enable();
    int id = GL20.glGetUniformLocation(shaderProgram, desc);
    if (id != -1) {
        GL20.glUniform1(id, buffer);
    }
}

From source file:org.terasology.rendering.assets.Material.java

License:Apache License

public void setFloat2(String desc, FloatBuffer buffer) {
    if (isDisposed())
        return;//from w  w  w .j a  va  2  s  .c o  m

    enable();
    int id = GL20.glGetUniformLocation(shaderProgram, desc);
    if (id != -1) {
        GL20.glUniform2(id, buffer);
    }
}

From source file:org.terasology.rendering.assets.Material.java

License:Apache License

public void setFloat3(String desc, FloatBuffer buffer) {
    if (isDisposed())
        return;/* www. jav  a 2s .  c om*/

    enable();
    int id = GL20.glGetUniformLocation(shaderProgram, desc);
    if (id != -1) {
        GL20.glUniform3(id, buffer);
    }
}

From source file:org.terasology.rendering.assets.Material.java

License:Apache License

public void setFloat4(String desc, FloatBuffer buffer) {
    if (isDisposed())
        return;/* w w w .  j a v a 2s . c o  m*/

    enable();
    int id = GL20.glGetUniformLocation(shaderProgram, desc);
    if (id != -1) {
        GL20.glUniform4(id, buffer);
    }
}

From source file:org.terasology.rendering.assets.Material.java

License:Apache License

public void setTexture(String desc, Texture texture) {
    if (isDisposed())
        return;/*from   w ww .  j a  v a 2s .co m*/

    int texId = -1;
    if (bindMap.containsKey(desc)) {
        texId = bindMap.get(desc);
    } else {
        // TODO: do this initially, and try and have similar textures in similar slots for all materials.
        ParamMetadata metadata = shader.getParameter(desc);
        if (metadata == null) {
            return;
        }
        enable();
        texId = textureIndex++;
        int id = GL20.glGetUniformLocation(shaderProgram, desc);
        GL20.glUniform1i(id, texId);
        bindMap.put(desc, texId);
    }

    textureMap.put(texId, texture);
}

From source file:org.terasology.rendering.opengl.GLSLMaterial.java

License:Apache License

private int getUniformLocation(int activeShaderProgramId, String desc) {
    UniformId id = new UniformId(activeShaderProgramId, desc);

    if (uniformLocationMap.containsKey(id)) {
        return uniformLocationMap.get(id);
    }/*w  w w . j  av  a  2s  .co m*/

    int loc = GL20.glGetUniformLocation(activeShaderProgramId, desc);
    uniformLocationMap.put(id, loc);

    return loc;
}

From source file:org.terasology.rendering.particles.BlockParticle.java

License:Apache License

protected void renderParticle() {
    if (_displayLists[_blockType] == 0) {
        _displayLists[_blockType] = glGenLists(1);
        glNewList(_displayLists[_blockType], GL11.GL_COMPILE);
        drawParticle();//from www .j  a  v  a2  s. c o  m
        glEndList();
    }

    float lightValue = _parent.getParent().getRenderingLightValueAt(_position);

    // Apply biome and overall color offset
    FloatBuffer colorBuffer = BufferUtils.createFloatBuffer(3);
    Vector4f color = BlockManager.getInstance().getBlock(_blockType).calcColorOffsetFor(Block.SIDE.FRONT,
            _parent.getParent().getActiveTemperature(), _parent.getParent().getActiveHumidity());
    colorBuffer.put(color.x);
    colorBuffer.put(color.y);
    colorBuffer.put(color.z);
    colorBuffer.flip();

    int colorOffset = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("particle"),
            "colorOffset");
    int light = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("particle"), "light");
    int texOffsetX = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("particle"), "texOffsetX");
    int texOffsetY = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("particle"), "texOffsetY");
    GL20.glUniform1f(light, lightValue * _lightOffset);
    GL20.glUniform1f(texOffsetX, _texOffsetX);
    GL20.glUniform1f(texOffsetY, _texOffsetY);
    GL20.glUniform3(colorOffset, colorBuffer);

    glCallList(_displayLists[_blockType]);
}