Example usage for org.lwjgl.opengl GL13 GL_TEXTURE0

List of usage examples for org.lwjgl.opengl GL13 GL_TEXTURE0

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL13 GL_TEXTURE0.

Prototype

int GL_TEXTURE0

To view the source code for org.lwjgl.opengl GL13 GL_TEXTURE0.

Click Source Link

Document

Accepted by the texture parameter of ActiveTexture and MultiTexCoord.

Usage

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

License:Open Source License

@Override
public void render(Matrix4f matrix, RenderStyle style) {
    dealWithChange();/*  w  ww.j a v a  2s.c om*/
    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();/*  ww  w .j  av  a 2  s . c om*/
    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.base.RenderablePoints.java

License:Open Source License

@Override
public void render(Matrix4f matrix, RenderStyle style) {
    Util.checkErr();//from  www. ja  v a2  s  . co m

    dealWithChange();
    if (!visible) {
        return;
    }
    if (vertCount == 0) {
        return;
    }
    Util.checkErr();
    GL11.glDisable(GL11.GL_DEPTH_TEST);
    Util.checkErr();
    GL11.glPointSize(3f);
    Util.checkErr();
    int pID = Resources.loadShader("particle.vs", "particle.fs").getProgram();
    Util.checkErr();
    GL20.glUseProgram(pID);
    Util.checkErr();
    if (pID == 0) {
        return;
    }
    Util.checkErr();
    GL30.glBindVertexArray(vaoID);
    Util.checkErr();
    GL20.glEnableVertexAttribArray(0);
    GL20.glEnableVertexAttribArray(1);
    GL20.glEnableVertexAttribArray(2);

    Util.checkErr();
    int wSS = GL20.glGetUniformLocation(pID, "windowSizeScale");

    GL20.glUniform1f(wSS, MainThread.lastW / 1024f);

    getContext().setMatrices(pID, matrix);
    Util.checkErr();

    if (tex != null) {
        tex.bind(GL13.GL_TEXTURE0);
    }
    GL11.glEnable(GL20.GL_POINT_SPRITE);
    GL11.glEnable(GL20.GL_VERTEX_PROGRAM_POINT_SIZE);
    GL11.glDrawArrays(GL11.GL_POINTS, 0, vertCount);

    GL11.glDisable(GL20.GL_POINT_SPRITE);
    GL11.glDisable(GL20.GL_VERTEX_PROGRAM_POINT_SIZE);
    if (tex != null) {
        tex.unbind();
    }
    Util.checkErr();

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

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

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

License:Open Source License

public void bindLights(int pID, int texture) {
    GL20.glUseProgram(pID);/* w  ww .ja  v a  2  s. c  o  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();
    }
}

From source file:com.opengrave.og.light.Depth2DFramebuffer.java

License:Open Source License

@Override
public void bindDraw() {
    Util.checkErr();/* w w w.j  a  v a2  s . com*/

    for (int i = GL13.GL_TEXTURE0; i < GL13.GL_TEXTURE31; i++) {
        GL13.glActiveTexture(i);
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
        GL11.glBindTexture(GL30.GL_TEXTURE_2D_ARRAY, 0);
        GL11.glBindTexture(GL13.GL_TEXTURE_CUBE_MAP, 0);
    }
    Util.checkErr();
    GL30.glBindFramebuffer(GL30.GL_FRAMEBUFFER, framebuffer);
    Util.checkErr();
    GL11.glDisable(GL11.GL_BLEND);
    Util.checkErr();
    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL11.glDepthFunc(GL11.GL_LESS);
    GL11.glDepthMask(true);
    Util.checkErr();
    GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);
    Util.checkErr();
    GL11.glViewport(0, 0, framebufferSize, framebufferSize);

}

From source file:com.opengrave.og.light.Depth2DFramebuffer.java

License:Open Source License

public void dumpTestingImage() {
    // TESTING// ww  w.  j a  v a2  s .c  o  m
    GL11.glDisable(GL11.GL_DEPTH_TEST);
    int pID = Resources.loadShader("test.vs", "test.fs").getProgram();
    GL20.glUseProgram(pID);
    int shadow = GL20.glGetUniformLocation(pID, "shadowMap");
    GL20.glUniform1i(shadow, 0);
    GL30.glBindVertexArray(vao_ID);
    GL20.glEnableVertexAttribArray(0);
    GL20.glEnableVertexAttribArray(1);
    shadowMap.bind(GL13.GL_TEXTURE0);
    GL11.glDrawArrays(GL11.GL_TRIANGLES, 0, count * 3);
    shadowMap.unbind();
    GL20.glDisableVertexAttribArray(0);
    GL20.glDisableVertexAttribArray(1);

    GL20.glUseProgram(0);
    GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0);
    GL30.glBindVertexArray(0);
    GL11.glEnable(GL11.GL_DEPTH_TEST);
    // END TESTING
}

From source file:com.opengrave.og.resources.TextureDead.java

License:Open Source License

public static TextureDead create(String location) {
    InputStream in = null;//from  ww w . j a  v  a 2s.  c  o  m
    File f = new File(Resources.cache, location);
    try {
        in = new FileInputStream(f.getAbsolutePath());
    } catch (FileNotFoundException e1) {
        System.out.println("Cannot open file " + f.getAbsolutePath());
        return null;
    }
    PNGDecoder decoder;
    TextureDead textureObject = new TextureDead();
    int texture = -1;
    try {
        decoder = new PNGDecoder(in);
        textureObject.width = decoder.getWidth();
        textureObject.height = decoder.getHeight();
        System.out.println("Width : " + decoder.getWidth() + " Height : " + decoder.getHeight());
        ByteBuffer buf = ByteBuffer.allocateDirect(4 * decoder.getWidth() * decoder.getHeight());
        decoder.decode(buf, decoder.getWidth() * 4, Format.RGBA);
        buf.flip();
        texture = GL11.glGenTextures();
        textureObject.id = texture;
        GL13.glActiveTexture(GL13.GL_TEXTURE0);
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture);
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_REPEAT);
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_REPEAT);
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
        GL11.glTexImage2D(GL11.GL_TEXTURE_2D, 0, GL11.GL_RGBA, decoder.getWidth(), decoder.getHeight(), 0,
                GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buf);
        // GL30.glGenerateMipmap(GL11.GL_TEXTURE_2D);
    } catch (IOException e) {
        new DebugExceptionHandler(e, location);
    } finally {
        try {
            if (in != null) {
                in.close();
            }
        } catch (IOException e) {
        }
    }
    return textureObject;

}

From source file:com.redthirddivision.quad.rendering.materials.Texture.java

License:Apache License

public void bind(int samplerSlot) {
    try {//  w w w  . j a  va2  s. c  o m
        assert (samplerSlot >= 0 && samplerSlot <= 31);
        GL13.glActiveTexture(GL13.GL_TEXTURE0 + samplerSlot);
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, manager.getID());
    } catch (Exception e) {
        System.err.println("Could not bind texture: " + file);
        System.exit(1);
    }
}

From source file:com.redthirddivision.quad.rendering.renderers.EntityRenderer.java

License:Apache License

protected void prepare(Model model) {
    GL30.glBindVertexArray(model.getVaoID());
    GL20.glEnableVertexAttribArray(0);//from w w w.ja v a 2  s  .  c om
    GL20.glEnableVertexAttribArray(1);
    GL20.glEnableVertexAttribArray(2);

    Material material = model.getMaterial();
    shader.loadNumRows(material.getNumRows());
    if (material.hasTransparency())
        Util.disableCulling();
    shader.loadFakeLighting(material.isUseingFakeLighting());
    shader.loadShine(material.getShineDamper(), material.getReflectivity());

    GL13.glActiveTexture(GL13.GL_TEXTURE0);
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, model.getMaterial().getTextureID());
}

From source file:com.redthirddivision.quad.rendering.renderers.GuiRenderer.java

License:Apache License

@Override
public void render(ArrayList<GuiTexture> elements) {
    shader.start();/*from   ww w. jav a2s .c o m*/

    GL30.glBindVertexArray(quad.getVaoID());
    GL20.glEnableVertexAttribArray(0);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glDisable(GL11.GL_DEPTH_TEST);
    for (GuiTexture gui : elements) {
        GL13.glActiveTexture(GL13.GL_TEXTURE0);
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, gui.getTexture());
        Matrix4f matrix = MathHelper.createTransformationMatrix(gui.getPosition(), gui.getScale(),
                new Vector2f(0, 0));
        shader.loadTransformation(matrix);
        GL11.glDrawArrays(GL11.GL_TRIANGLE_STRIP, 0, quad.getVertexCount());
    }

    GL11.glDisable(GL11.GL_BLEND);
    GL11.glEnable(GL11.GL_DEPTH_TEST);
    GL20.glDisableVertexAttribArray(0);
    GL30.glBindVertexArray(0);

    shader.stop();
}