Example usage for org.lwjgl.opengl GL20 glUniform1f

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

Introduction

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

Prototype

public static void glUniform1f(@NativeType("GLint") int location, @NativeType("GLfloat") float v0) 

Source Link

Document

Specifies the value of a float uniform variable for the current program object.

Usage

From source file:ar.com.quark.backend.lwjgl.opengl.DesktopGLES20.java

License:Apache License

/**
 * {@inheritDoc}
 */
@Override
public void glUniform1f(int name, float i1) {
    GL20.glUniform1f(name, i1);
}

From source file:com.badlogic.gdx.backends.jglfw.JglfwGL20.java

License:Apache License

public void glUniform1f(int location, float x) {
    GL20.glUniform1f(location, x);
}

From source file:com.flowpowered.caustic.lwjgl.gl20.GL20Program.java

License:MIT License

@Override
public void setUniform(String name, float f) {
    checkCreated();//from   w w  w .  j a v a 2  s . com
    if (!isDirty(name, f)) {
        return;
    }
    GL20.glUniform1f(uniforms.get(name), f);
    uniformValues.put(name, f);
    LWJGLUtil.checkForGLError();
}

From source file:com.github.begla.blockmania.game.mobs.GelatinousCube.java

License:Apache License

public void render() {
    super.render();

    glPushMatrix();//from w  ww .j av a 2s .  c o  m

    glTranslatef(getPosition().x - _parent.getWorldProvider().getRenderingReferencePoint().x,
            getPosition().y - _parent.getWorldProvider().getRenderingReferencePoint().y,
            getPosition().z - _parent.getWorldProvider().getRenderingReferencePoint().z);
    glRotatef((float) _yaw, 0f, 1f, 0f);

    glEnable(GL_TEXTURE_2D);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    TextureManager.getInstance().bindTexture("slime");

    // Setup the shader
    ShaderManager.getInstance().enableShader("gelatinousCube");
    int tick = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("gelatinousCube"), "tick");
    GL20.glUniform1f(tick, _parent.getTick());
    int cOffset = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("gelatinousCube"),
            "colorOffset");
    GL20.glUniform4f(cOffset, COLORS[_randomColorId].x, COLORS[_randomColorId].y, COLORS[_randomColorId].z,
            1.0f);
    int light = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("gelatinousCube"), "light");
    GL20.glUniform1f(light, calcLightValue());

    if (_displayListOuterBody == -1 || _displayListInnerBody == -1) {
        generateDisplayList();
    }

    glPushMatrix();
    glScalef(_randomSize, _randomSize, _randomSize);
    glCallList(_displayListInnerBody);
    glCallList(_displayListOuterBody);
    glPopMatrix();

    glDisable(GL11.GL_TEXTURE_2D);
    glDisable(GL_BLEND);

    ShaderManager.getInstance().enableShader(null);

    glPopMatrix();
}

From source file:com.github.begla.blockmania.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();// w  w w  .ja  v  a2  s  . c om
        glEndList();
    }

    BlockParticleEmitter pE = (BlockParticleEmitter) getParent();
    double lightValueSun = ((double) pE.getParent().getWorldProvider().getLightAtPosition(_position,
            Chunk.LIGHT_TYPE.SUN));
    lightValueSun = (lightValueSun / 15.0) * pE.getParent().getDaylight();
    double lightValueBlock = pE.getParent().getWorldProvider().getLightAtPosition(_position,
            Chunk.LIGHT_TYPE.BLOCK);
    lightValueBlock = lightValueBlock / 15.0;

    float lightValue = (float) Math.max(lightValueSun, lightValueBlock) * _lightOffset;

    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);
    GL20.glUniform1f(texOffsetX, _texOffsetX);
    GL20.glUniform1f(texOffsetY, _texOffsetY);

    glCallList(_displayLists[_blockType]);
}

From source file:com.github.begla.blockmania.world.horizon.Clouds.java

License:Apache License

public void render() {
    // Nothing to do if the player is swimming
    if (_parent.getPlayer().isHeadUnderWater())
        return;/*from   w  w w.  j  a  va  2  s  .  com*/

    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

    ShaderManager.getInstance().enableShader("cloud");
    int daylight = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("cloud"), "daylight");
    GL20.glUniform1f(daylight, (float) _parent.getDaylight());

    glPushMatrix();
    glTranslatef(_parent.getPlayer().getPosition().x + _cloudOffset.x, 190f,
            _parent.getPlayer().getPosition().z + _cloudOffset.y);

    // Render two passes: The first one only writes to the depth buffer, the second one to the frame buffer
    for (int i = 0; i < 2; i++) {
        if (i == 0) {
            glColorMask(false, false, false, false);
        } else {
            glColorMask(true, true, true, true);
        }

        drawClouds();
    }

    glPopMatrix();

    ShaderManager.getInstance().enableShader(null);
    glDisable(GL_BLEND);
}

From source file:com.github.begla.blockmania.world.horizon.Skysphere.java

License:Apache License

public void render() {
    updateClouds();/*  ww  w.  j  a  v  a2 s .  c o m*/

    glDisable(GL_CULL_FACE);
    glDisable(GL_DEPTH_TEST);

    glEnable(GL13.GL_TEXTURE_CUBE_MAP);
    GL11.glBindTexture(GL13.GL_TEXTURE_CUBE_MAP, _textureIds.get(0));
    _sunPosAngle = (float) Math.toRadians(360.0 * _parent.getWorldProvider().getTime() - 90.0);
    Vector4f sunNormalise = new Vector4f(0.0f, (float) Math.cos(_sunPosAngle), (float) Math.sin(_sunPosAngle),
            1.0f);
    sunNormalise.normalize();

    _zenithColor = getAllWeatherZenith(sunNormalise.y);

    ShaderManager.getInstance().enableShader("sky");

    int sunPos = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "sunPos");
    GL20.glUniform4f(sunPos, 0.0f, (float) Math.cos(_sunPosAngle), (float) Math.sin(_sunPosAngle), 1.0f);

    int time = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "time");
    GL20.glUniform1f(time, (float) _parent.getWorldProvider().getTime());

    int sunAngle = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "sunAngle");
    GL20.glUniform1f(sunAngle, _sunPosAngle);

    int turbidity = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "turbidity");
    GL20.glUniform1f(turbidity, _turbidity);

    int zenith = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("sky"), "zenith");
    GL20.glUniform3f(zenith, _zenithColor.x, _zenithColor.y, _zenithColor.z);

    // DRAW THE SKYSPHERE
    drawSphere();

    glDisable(GL13.GL_TEXTURE_CUBE_MAP);

    ShaderManager.getInstance().enableShader("clouds");
    // Apply daylight
    int lightClouds = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("clouds"), "light");
    GL20.glUniform1f(lightClouds, getDaylight());

    // DRAW THE CLOUDS
    drawClouds();
    ShaderManager.getInstance().enableShader(null);

    glEnable(GL_CULL_FACE);
    glEnable(GL_DEPTH_TEST);
}

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

License:Apache License

/**
 * Renders all chunks that are currently in the player's field of view.
 */// w  w w.ja  va 2  s  .  co m
private void renderChunksAndEntities() {

    ShaderManager.getInstance().enableShader("chunk");

    GL13.glActiveTexture(GL13.GL_TEXTURE1);
    TextureManager.getInstance().bindTexture("custom_lava_still");
    GL13.glActiveTexture(GL13.GL_TEXTURE2);
    TextureManager.getInstance().bindTexture("custom_water_still");
    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    TextureManager.getInstance().bindTexture("terrain");

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

    int lavaTexture = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "textureLava");
    int waterTexture = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"),
            "textureWater");
    int textureAtlas = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"),
            "textureAtlas");
    GL20.glUniform1i(lavaTexture, 1);
    GL20.glUniform1i(waterTexture, 2);
    GL20.glUniform1i(textureAtlas, 0);

    int tick = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("chunk"), "tick");

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

    // OPAQUE ELEMENTS
    for (int i = 0; i < _visibleChunks.size(); i++) {
        Chunk c = _visibleChunks.get(i);

        c.render(ChunkMesh.RENDER_TYPE.OPAQUE);
        c.render(ChunkMesh.RENDER_TYPE.LAVA);

        if ((Boolean) ConfigurationManager.getInstance().getConfig().get("System.Debug.chunkOutlines")) {
            c.getAABB().render();
        }
    }

    for (int i = 0; i < _visibleChunks.size(); i++) {
        Chunk c = _visibleChunks.get(i);

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

    for (int j = 0; j < 2; j++) {
        // ANIMATED WATER
        for (int i = 0; i < _visibleChunks.size(); i++) {
            Chunk c = _visibleChunks.get(i);

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

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

    _mobManager.renderAll();

    ShaderManager.getInstance().enableShader("block");
    _bulletPhysicsRenderer.render();

    ShaderManager.getInstance().enableShader(null);
}

From source file:com.github.begla.blockmania.world.physics.BulletPhysicsRenderer.java

License:Apache License

public void render() {
    for (BlockRigidBody b : _blocks) {
        Transform t = new Transform();
        b.getMotionState().getWorldTransform(t);

        GL11.glPushMatrix();//from   www  .jav a2  s. c  om

        FloatBuffer mBuffer = BufferUtils.createFloatBuffer(16);
        float[] mFloat = new float[16];
        t.getOpenGLMatrix(mFloat);

        mBuffer.put(mFloat);
        mBuffer.flip();

        GL11.glTranslatef(-_parent.getPlayer().getPosition().x, -_parent.getPlayer().getPosition().y,
                -_parent.getPlayer().getPosition().z);
        GL11.glMultMatrix(mBuffer);

        float lightValue = calcLightValueForTransform(t);
        int lightRef = GL20.glGetUniformLocation(ShaderManager.getInstance().getShader("block"), "light");
        GL20.glUniform1f(lightRef, lightValue);

        BlockManager.getInstance().getBlock(b.getType()).render();
        GL11.glPopMatrix();
    }
}

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

License:Apache License

/**
 * Renders the chunks./*from  w w w  .  j  a  v a 2s  .com*/
 */
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);
}