Example usage for org.lwjgl.opengl GL20 glUniform1i

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

Introduction

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

Prototype

public static void glUniform1i(@NativeType("GLint") int location, @NativeType("GLint") int v0) 

Source Link

Document

Specifies the value of an int uniform variable for the current program object.

Usage

From source file:com.github.begla.blockmania.world.World.java

License:Apache License

/**
 * Renders the chunks./*from  ww  w  . j a  v a2 s  .c om*/
 */
private void renderChunks() {
    ShaderManager.getInstance().enableShader("chunk");

    int daylight = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "daylight");
    int swimming = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "swimming");
    int animationOffset = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"),
            "animationOffset");
    int animated = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "animated");

    GL20.glUniform1f(daylight, (float) getDaylight());
    GL20.glUniform1i(swimming, _player.isHeadUnderWater() ? 1 : 0);

    FastList<Chunk> visibleChunks = fetchVisibleChunks();

    glEnable(GL_TEXTURE_2D);

    GL20.glUniform1i(animated, 0);
    TextureManager.getInstance().bindTexture("terrain");

    // OPAQUE ELEMENTS
    for (FastList.Node<Chunk> n = visibleChunks.head(), end = visibleChunks.tail(); (n = n.getNext()) != end;) {
        Chunk c = n.getValue();

        c.render(ChunkMesh.RENDER_TYPE.OPAQUE);

        if (Configuration.getSettingBoolean("CHUNK_OUTLINES")) {
            c.getAABB().render();
        }
    }

    // ANIMATED LAVA
    GL20.glUniform1i(animated, 1);
    TextureManager.getInstance().bindTexture("custom_lava_still");

    GL20.glUniform1f(animationOffset, ((float) (_tick % 16)) * (1.0f / 16f));

    for (FastList.Node<Chunk> n = visibleChunks.head(), end = visibleChunks.tail(); (n = n.getNext()) != end;) {
        Chunk c = n.getValue();
        c.render(ChunkMesh.RENDER_TYPE.LAVA);
    }

    GL20.glUniform1i(animated, 0);
    TextureManager.getInstance().bindTexture("terrain");

    // BILLBOARDS AND TRANSLUCENT ELEMENTS
    for (FastList.Node<Chunk> n = visibleChunks.head(), end = visibleChunks.tail(); (n = n.getNext()) != end;) {
        Chunk c = n.getValue();
        c.render(ChunkMesh.RENDER_TYPE.BILLBOARD_AND_TRANSLUCENT);
    }

    GL20.glUniform1i(animated, 1);
    GL20.glUniform1f(animationOffset, ((float) (_tick / 2 % 12)) * (1.0f / 16f));
    TextureManager.getInstance().bindTexture("custom_water_still");

    for (int i = 0; i < 2; i++) {
        // ANIMATED WATER
        for (FastList.Node<Chunk> n = visibleChunks.head(), end = visibleChunks
                .tail(); (n = n.getNext()) != end;) {
            Chunk c = n.getValue();

            if (i == 0) {
                glColorMask(false, false, false, false);
            } else {
                glColorMask(true, true, true, true);
            }

            c.render(ChunkMesh.RENDER_TYPE.WATER);
        }
    }

    ShaderManager.getInstance().enableShader(null);

    glDisable(GL_TEXTURE_2D);
}

From source file:com.grillecube.client.opengl.GLProgram.java

protected void loadUniformInteger(int location, int value) {
    GL20.glUniform1i(location, value);
}

From source file:com.kauridev.lunarfever.graphics.ShaderProgram.java

License:Open Source License

private void setUniformi(int loc, int i) {
    if (loc == -1) {
        return;
    }

    GL20.glUniform1i(loc, i);
}

From source file:com.opengrave.common.world.MaterialList.java

License:Open Source License

public synchronized void bind(int pID, int glTexture) {
    updateTex();//w  ww  .  jav a2  s  . c  om
    int texMain = GL20.glGetUniformLocation(pID, "arraytexture");
    int texData = GL20.glGetUniformLocation(pID, "arraytexturedata");
    GL20.glUniform1i(texMain, glTexture - GL13.GL_TEXTURE0);
    GL20.glUniform1i(texData, (glTexture - GL13.GL_TEXTURE0) + 1);
    if (!valid()) {
        return;
    }
    textureAtlas.bind(glTexture);
    textureDataAtlas.bind(glTexture + 1);
}

From source file:com.opengrave.og.base.Renderable3D.java

License:Open Source License

@Override
public void render(Matrix4f matrix, RenderStyle style) {
    dealWithChange();//from  www  . jav  a  2 s  .co m
    int pID = Resources.loadShader("model.vs", "model.fs").getProgram();
    GL20.glUseProgram(pID);
    int texture = GL20.glGetUniformLocation(pID, "texture");
    int shadow = GL20.glGetUniformLocation(pID, "shadowMap");
    GL20.glUniform1i(texture, 0);
    GL20.glUniform1i(shadow, 1);
    GL30.glBindVertexArray(vao_ID);
    GL20.glEnableVertexAttribArray(0);
    GL20.glEnableVertexAttribArray(1);
    GL20.glEnableVertexAttribArray(2);
    GL20.glBindAttribLocation(pID, 0, "in_Position");
    GL20.glBindAttribLocation(pID, 1, "in_Normal");
    GL20.glBindAttribLocation(pID, 2, "in_TextureCoord");

    Util.checkErr();
    if (matList != null && matList.valid()) {
        matList.bind(pID, GL13.GL_TEXTURE0);
        Util.loadMaterials(matList, pID);

    }
    Util.checkErr();
    getContext().setMatrices(pID, matrix);
    getContext().bindShadowData(GL13.GL_TEXTURE2);
    getContext().bindLights(pID, GL13.GL_TEXTURE3);
    Util.setRenderStyle(pID, style);

    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vbo_index_ID);
    GL11.glDrawElements(GL11.GL_TRIANGLES, indexCount, GL11.GL_UNSIGNED_INT, 0);
    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0);
    getContext().unbindLights();
    getContext().unbindShadowData();

    if (matList != null && matList.valid()) {
        matList.unbind();
    }
    Util.checkErr();

    GL20.glDisableVertexAttribArray(0);
    GL20.glDisableVertexAttribArray(1);
    GL20.glDisableVertexAttribArray(2);
    Util.checkErr();

    GL20.glUseProgram(0);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
    GL30.glBindVertexArray(0);
}

From source file:com.opengrave.og.base.RenderableBoneAnimated.java

License:Open Source License

@Override
public void render(Matrix4f matrix, RenderStyle style) {
    // if (!visible) {
    // return;//  w  ww.ja va2s. c  o m
    // }
    GL11.glDisable(GL11.GL_CULL_FACE); // TODO Enable Face Culling, and be
    // absolutely sure that all tris are
    // facing the correct way
    dealWithChange();

    int pID = Resources.loadShader("animmodel.vs", "animmodel.fs").getProgram();
    GL20.glUseProgram(pID);
    int texture = GL20.glGetUniformLocation(pID, "texture");
    int shadow = GL20.glGetUniformLocation(pID, "shadowMap");
    GL20.glUniform1i(texture, 0);
    GL20.glUniform1i(shadow, 1);
    GL30.glBindVertexArray(vao_ID);
    GL20.glBindAttribLocation(pID, 0, "in_Position");
    GL20.glBindAttribLocation(pID, 1, "in_Normal");
    GL20.glBindAttribLocation(pID, 2, "in_TextureCoord");
    GL20.glBindAttribLocation(pID, 3, "in_BoneID");
    GL20.glBindAttribLocation(pID, 4, "in_BoneWeight");

    GL20.glEnableVertexAttribArray(0);
    GL20.glEnableVertexAttribArray(1);
    GL20.glEnableVertexAttribArray(2);
    GL20.glEnableVertexAttribArray(3);
    GL20.glEnableVertexAttribArray(4);
    if (matList != null && matList.valid()) {
        matList.bind(pID, GL13.GL_TEXTURE0);
        Util.loadMaterials(matList, pID);

    }
    setBonesUniform(pID);

    getContext().setMatrices(pID, matrix);
    getContext().bindShadowData(GL13.GL_TEXTURE2);
    getContext().bindLights(pID, GL13.GL_TEXTURE3);
    Util.setRenderStyle(pID, style);
    // GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, vertCount);
    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, vbo_index_ID);
    GL11.glDrawElements(GL11.GL_TRIANGLES, indexCount, GL11.GL_UNSIGNED_INT, 0);
    GL15.glBindBuffer(GL15.GL_ELEMENT_ARRAY_BUFFER, 0);
    getContext().unbindLights();
    getContext().unbindShadowData();
    if (matList != null && matList.valid()) {
        matList.unbind();
    }
    GL20.glDisableVertexAttribArray(0);
    GL20.glDisableVertexAttribArray(1);
    GL20.glDisableVertexAttribArray(2);
    GL20.glDisableVertexAttribArray(3);
    GL20.glDisableVertexAttribArray(4);

    GL20.glUseProgram(0);
    GL30.glBindVertexArray(0);

    GL11.glEnable(GL11.GL_CULL_FACE);
}

From source file:com.opengrave.og.base.RenderableLiquid.java

License:Open Source License

@Override
public void render(Matrix4f matrix, RenderStyle style) {
    dealWithChange();// ww  w .  jav a 2 s  . c o m
    if (vertexList.size() == 0) {
        return;
    }
    int pID = Resources.loadShader("liquid.vs", "liquid.fs").getProgram();
    GL20.glUseProgram(pID);
    int atlas = GL20.glGetUniformLocation(pID, "arraytexture");
    int normals = GL20.glGetUniformLocation(pID, "arraytexturedata");
    int colours = GL20.glGetUniformLocation(pID, "colours");
    int flows = GL20.glGetUniformLocation(pID, "flows");
    int shadow = GL20.glGetUniformLocation(pID, "shadowMap");

    GL20.glUniform1i(atlas, 0);
    GL20.glUniform1i(normals, 1);
    GL20.glUniform1i(colours, 2);
    GL20.glUniform1i(flows, 3);
    GL20.glUniform1i(shadow, 4);
    GL30.glBindVertexArray(vaoID);

    GL20.glEnableVertexAttribArray(0);
    GL20.glEnableVertexAttribArray(1);
    GL20.glEnableVertexAttribArray(2);

    getContext().setMatrices(pID, matrix);
    textureAtlas.bind(GL13.GL_TEXTURE0);
    normalAtlas.bind(GL13.GL_TEXTURE1);
    getColourTexture().bind(GL13.GL_TEXTURE2);
    getFlowTexture().bind(GL13.GL_TEXTURE3);

    getContext().bindShadowData(GL13.GL_TEXTURE4);
    getContext().bindLights(pID, GL13.GL_TEXTURE5);
    Util.setRenderStyle(pID, style);
    GL11.glDepthMask(false);
    GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, vertexList.size());
    GL11.glDepthMask(true);
    getContext().unbindLights();
    getContext().unbindShadowData();

    textureAtlas.unbind();
    getFlowTexture().unbind();
    getColourTexture().unbind();
    GL20.glDisableVertexAttribArray(0);
    GL20.glDisableVertexAttribArray(1);
    GL20.glDisableVertexAttribArray(2);

    GL30.glBindVertexArray(0);

    GL20.glUseProgram(0);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
    GL30.glBindVertexArray(0);
}

From source file:com.opengrave.og.base.RenderableMultitex.java

License:Open Source License

@Override
public void render(Matrix4f matrix, RenderStyle style) {
    dealWithChange();/* w  w w . j  a v a 2  s.c o  m*/
    if (vertexList.size() == 0) {
        return;
    }
    // GL11.glBindTexture(GL11.GL_TEXTURE_2D,
    // Resources.loadTexture("tex/blank.png").id);
    int pID = Resources.loadShader("terrain.vs", "terrain.fs").getProgram();
    GL20.glUseProgram(pID);
    int atlas = GL20.glGetUniformLocation(pID, "arraytexture");
    int colours = GL20.glGetUniformLocation(pID, "colours");
    int shadow = GL20.glGetUniformLocation(pID, "shadowMap");
    int normals = GL20.glGetUniformLocation(pID, "arraytexturedata");
    GL20.glUniform1i(atlas, 0);
    GL20.glUniform1i(colours, 1);
    GL20.glUniform1i(normals, 2);
    GL20.glUniform1i(shadow, 3);
    GL30.glBindVertexArray(vaoID);

    GL20.glEnableVertexAttribArray(0);
    GL20.glEnableVertexAttribArray(1);
    GL20.glEnableVertexAttribArray(2);
    GL20.glEnableVertexAttribArray(3);
    GL20.glBindAttribLocation(pID, 0, "in_Position");
    GL20.glBindAttribLocation(pID, 1, "in_TextureCoord");
    GL20.glBindAttribLocation(pID, 2, "in_TexIndex");
    GL20.glBindAttribLocation(pID, 3, "in_Normal");

    getContext().setMatrices(pID, matrix);
    GL20.glUniform1i(GL20.glGetUniformLocation(pID, "hidden"), hidden);
    textureAtlas.bind(GL13.GL_TEXTURE0);
    getColourTexture().bind(GL13.GL_TEXTURE1);
    normalAtlas.bind(GL13.GL_TEXTURE2);
    getContext().bindShadowData(GL13.GL_TEXTURE3);
    getContext().bindLights(pID, GL13.GL_TEXTURE4);
    Util.setRenderStyle(pID, style);
    GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, vertexList.size());
    getContext().unbindLights();
    getContext().unbindShadowData();

    textureAtlas.unbind();
    // HGMainThread.shadowMap.unbind();

    getColourTexture().unbind();
    // System.out.println(getClass().getName()+" : "+vertexList.size()+" rendered");
    GL20.glDisableVertexAttribArray(0);
    GL20.glDisableVertexAttribArray(1);
    GL20.glDisableVertexAttribArray(2);
    GL20.glDisableVertexAttribArray(3);
    GL30.glBindVertexArray(0);
    GL20.glUseProgram(0);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
    GL30.glBindVertexArray(0);
}

From source file:com.opengrave.og.base.RenderableParticles.java

License:Open Source License

@Override
public void render(Matrix4f matrix, RenderStyle style) {
    dealWithChange();/*  www.j a  v a 2s . c  o  m*/
    if (matList == null || !matList.valid()) {
        return;
    }
    GL30.glBindVertexArray(idVao);
    int pID = Resources.loadShader("particle.vs", "particle.fs").getProgram();
    GL20.glUseProgram(pID);
    GL20.glEnableVertexAttribArray(0);
    GL20.glEnableVertexAttribArray(1);
    GL20.glEnableVertexAttribArray(2);
    GL20.glBindAttribLocation(pID, 0, "in_Position");
    GL20.glBindAttribLocation(pID, 1, "in_Colour");
    GL20.glBindAttribLocation(pID, 2, "in_Scale");
    Util.checkErr();
    int texture = GL20.glGetUniformLocation(pID, "tex");
    GL20.glUniform1i(texture, 0);
    int wSS = GL20.glGetUniformLocation(pID, "windowSizeScale");

    GL20.glUniform1f(wSS, getContext().width / 1024f);
    getContext().setMatrices(pID, matrix);
    if (matList != null && matList.valid()) {
        matList.bind(pID, GL13.GL_TEXTURE0);
    }
    GL11.glEnable(GL20.GL_POINT_SPRITE);
    GL11.glEnable(GL20.GL_VERTEX_PROGRAM_POINT_SIZE);
    GL11.glDepthMask(false);
    GL11.glDrawArrays(GL11.GL_POINTS, 0, size);
    GL11.glDepthMask(true);
    GL11.glDisable(GL20.GL_POINT_SPRITE);
    GL11.glDisable(GL20.GL_VERTEX_PROGRAM_POINT_SIZE);

    if (matList != null && matList.valid()) {
        matList.unbind();
    }
    Util.checkErr();

    GL20.glDisableVertexAttribArray(0);
    GL20.glDisableVertexAttribArray(1);
    GL20.glDisableVertexAttribArray(2);

    Util.checkErr();

    GL20.glUseProgram(0);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
    GL30.glBindVertexArray(0);
    Util.checkErr();
}

From source file:com.opengrave.og.engine.RenderView.java

License:Open Source License

public void bindLights(int pID, int texture) {
    GL20.glUseProgram(pID);/* w  w w.j  a  v  a 2 s. co m*/
    int lights = MainThread.config.getInteger("lightCount", 16);
    int showShadows = GL20.glGetUniformLocation(pID, "showShadows");
    GL20.glUniform1i(showShadows, hasshadows ? 1 : 0);
    Util.checkErr();
    if (cam instanceof FlyByCamera) {
        int eyepos = GL20.glGetUniformLocation(pID, "eyepos");
        Util.checkErr();
        Location camL = ((FlyByCamera) cam).getCameraLocation();
        Util.checkErr();
        GL20.glUniform3f(eyepos, camL.getFullXAsFloat(), camL.getFullYAsFloat(), camL.getZ());
        Util.checkErr();
    }
    if (hasshadows) {
        int lightDir = GL20.glGetUniformLocation(pID, "sunDir");
        Vector3f dir = sceneNode.getSkyLight().getDirection().normalise(null);
        GL20.glUniform3f(lightDir, dir.x, dir.y, dir.z);
        int sunStr = GL20.glGetUniformLocation(pID, "sunStr");
        GL20.glUniform1f(sunStr, sceneNode.getSkyLight().getIntensity());
    }
    if (!shadows) {
        return;
    }

    int lightCount = GL20.glGetUniformLocation(pID, "lightCount");
    GL20.glUniform1i(lightCount, lights);

    if (lights < 4) {
        lights = 4;
    }
    for (int i = 0; i < lights; i++) {
        ShadowCube ls;
        if (i >= lightShadows.size()) {
            ls = new ShadowCube(MainThread.config.getInteger("shadowSize", 1024));
            lightShadows.add(ls);
        }
        ls = lightShadows.get(i);
        if (ls == null) {
            continue;
        }
        PointLightNode light = ls.getLight();
        if (light == null) {
            continue;
        }
        int cube = GL20.glGetUniformLocation(pID, "cube" + i);
        int lightcolour = GL20.glGetUniformLocation(pID, "lights[" + i + "].colour");
        int lightposition = GL20.glGetUniformLocation(pID, "lights[" + i + "].position");
        int lightpower = GL20.glGetUniformLocation(pID, "lights[" + i + "].power");
        Vector3f loc = light.getPosition().toVector3();
        if (cam != null) {
            // loc = light.getPosition().minus(cam.getLocation());
            // loc = cam.minus(light.getPosition());
        }
        Util.checkErr();
        // Only upload a shadow texture location if we're having shadows for
        // the light. Basic has lights but no shadows
        if (i < showShadows) {
            GL20.glUniform1i(cube, texture + i - GL13.GL_TEXTURE0);
            ls.getFramebuffer().bindDepthTexture(texture + i);
        }
        Util.checkErr();
        GL20.glUniform4f(lightcolour, light.getColour().x, light.getColour().y, light.getColour().z,
                light.getColour().w);
        Util.checkErr();
        GL20.glUniform4f(lightposition, loc.x, loc.y, loc.z, 1f);
        Util.checkErr();
        GL20.glUniform1f(lightpower, light.getPower());
        Util.checkErr();
        Util.checkErr();
    }
}