Example usage for org.lwjgl.opengl ARBMultitexture glActiveTextureARB

List of usage examples for org.lwjgl.opengl ARBMultitexture glActiveTextureARB

Introduction

In this page you can find the example usage for org.lwjgl.opengl ARBMultitexture glActiveTextureARB.

Prototype

public static native void glActiveTextureARB(@NativeType("GLenum") int texture);

Source Link

Document

Selects which texture unit subsequent texture state calls will affect.

Usage

From source file:com.a2client.corex.Render.java

License:Open Source License

static public void ResetBind() {
    ResManager.Active.clear();/*  w  ww.jav a 2s. co  m*/

    if (!multi_texture) {
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
        // GL11.glBindTexture(, 0); // cube map
    } else {
        for (int i = 0; i < 16; i++) {
            ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB + i);
            GL11.glBindTexture(GL11.GL_TEXTURE_2D, 0);
            // GL11.glBindTexture(, 0); // cube map
        }
        ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB);
    }

    ARBShaderObjects.glUseProgramObjectARB(0);
    ARBVertexBufferObject.glBindBufferARB(ARBVertexBufferObject.GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
    ARBVertexBufferObject.glBindBufferARB(ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, 0);

    // slick unbind textures
    //        TextureImpl.unbind();
}

From source file:com.ardor3d.scene.state.lwjgl.LwjglTextureStateUtil.java

License:Open Source License

public static void checkAndSetUnit(final int unit, final TextureStateRecord record,
        final ContextCapabilities caps) {
    // No need to worry about valid record, since invalidate sets record's
    // currentUnit to -1.
    if (record.currentUnit != unit) {
        if (unit >= caps.getNumberOfTotalTextureUnits() || !caps.isMultitextureSupported() || unit < 0) {
            // ignore this request as it is not valid for the user's hardware.
            return;
        }/* w ww . java 2 s. com*/
        ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB + unit);
        record.currentUnit = unit;
    }
}

From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java

License:Open Source License

public void initTexturedRendering() {
    //       GL11.glDepthMask(true);
    //        GL11.glEnable(GL11.GL_DEPTH_TEST); // Enables Depth Testing
    //      GL11.glDepthFunc(GL11.GL_LEQUAL); // The Type Of Depth Testing To Do

    GL11.glDepthMask(true);/*from w  ww. ja  va 2s  .c  o  m*/
    GL11.glEnable(GL11.GL_DEPTH_TEST); // Enables Depth Testing
    GL11.glDepthFunc(GL11.GL_LEQUAL); // The Type Of Depth Testing To Do
    GL11.glDisable(GL11.GL_BLEND);

    ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB);
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
    GL11.glEnableClientState(GL11.GL_COLOR_ARRAY);
    GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);

}

From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java

License:Open Source License

public void initTextureUnit(int unitNum, int glTextureID) {
    if (unitNum == 0)
        ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB);
    else if (unitNum == 1)
        ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE1_ARB);
    else if (unitNum == 2)
        ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE2_ARB);

    GL11.glEnable(GL11.GL_TEXTURE_2D);//www.j  av  a2 s. co m
    GL11.glBindTexture(GL11.GL_TEXTURE_2D, glTextureID);
    //      GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
    //      GL11.glEnableClientState(GL11.GL_COLOR_ARRAY);
    //      GL11.glEnableClientState(GL11.GL_TEXTURE_COORD_ARRAY);

    //        ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB);
    //        GL11.glEnable(GL11.GL_TEXTURE_2D);
}

From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java

License:Open Source License

/*********************************/

public void setupTextureUnits(int glTextureID, int detail0TextureID, int detail1TextureID) {
    ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB);
    if (glTextureID != -1) {
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, glTextureID);
        /*            if(detail0TextureID != -1)
                    {//from w ww.ja v  a 2 s.co  m
        GL11.glTexEnvf (GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, ARBTextureEnvCombine.GL_COMBINE_ARB);
        GL11.glTexEnvf (GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_COMBINE_RGB_ARB, GL11.GL_REPLACE);
                    }
                    else
                    {*/
        GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE);
        //            }
    } else
        GL11.glDisable(GL11.GL_TEXTURE_2D);

    if (getEngine().getFeatureChecker().getArbMultitextureNumTexUnitsSupported() < 2)
        return;
    ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE1_ARB);
    if (detail0TextureID != -1) {
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, detail0TextureID);
        GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, ARBTextureEnvCombine.GL_COMBINE_ARB);
        GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_COMBINE_RGB_ARB, GL11.GL_ADD);
    } else
        GL11.glDisable(GL11.GL_TEXTURE_2D);

    if (getEngine().getFeatureChecker().getArbMultitextureNumTexUnitsSupported() < 3)
        return;
    ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE2_ARB);
    if (detail1TextureID != -1) {
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, detail1TextureID);
        GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, ARBTextureEnvCombine.GL_COMBINE_ARB);
        GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_COMBINE_RGB_ARB, GL11.GL_ADD);
    } else
        GL11.glDisable(GL11.GL_TEXTURE_2D);
}

From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java

License:Open Source License

public void disableAllTextureUnits() {
    ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB);
    GL11.glDisable(GL11.GL_TEXTURE_2D);/*from ww w . j ava 2  s  .c o  m*/
    //      GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);
    //      GL11.glDisableClientState(GL11.GL_COLOR_ARRAY);
    //      GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);

    if (getEngine().getFeatureChecker().getArbMultitextureNumTexUnitsSupported() < 2)
        return;
    ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE1_ARB);
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    //      GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);
    //      GL11.glDisableClientState(GL11.GL_COLOR_ARRAY);
    //      GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);

    if (getEngine().getFeatureChecker().getArbMultitextureNumTexUnitsSupported() < 3)
        return;
    ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE2_ARB);
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    //      GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);
    //      GL11.glDisableClientState(GL11.GL_COLOR_ARRAY);
    //      GL11.glDisableClientState(GL11.GL_TEXTURE_COORD_ARRAY);

}

From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java

License:Open Source License

private void renderTexturedTriangle(E3DTriangle triangle) {
    int detail0TextureID = -1;
    int detail1TextureID = -1;

    if (triangle.isTextureDetail0Available())
        detail0TextureID = triangle.getTextureDetail0().getGlTextureID();
    if (triangle.isTextureDetail1Available())
        detail1TextureID = triangle.getTextureDetail1().getGlTextureID();

    //Draw vertices
    ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB);

    boolean twoSupported = getEngine().getFeatureChecker().getArbMultitextureNumTexUnitsSupported() >= 2;
    boolean threeSupported = getEngine().getFeatureChecker().getArbMultitextureNumTexUnitsSupported() >= 3;

    GL11.glBegin(GL11.GL_TRIANGLES); // Begin Drawing Triangles
    ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE0_ARB,
            (float) triangle.getTextureCoordA().getX(), (float) triangle.getTextureCoordA().getY());
    if (twoSupported && detail0TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE1_ARB,
                (float) triangle.getTextureCoordDetail0A().getX(),
                (float) triangle.getTextureCoordDetail0A().getY());
    if (threeSupported && detail1TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE2_ARB,
                (float) triangle.getTextureCoordDetail1A().getX(),
                (float) triangle.getTextureCoordDetail1A().getY());

    GL11.glColor4f((float) triangle.getVertexColorA().getA(), (float) triangle.getVertexColorA().getB(),
            (float) triangle.getVertexColorA().getC(), (float) triangle.getVertexColorA().getD());
    GL11.glVertex3f((float) (triangle.getVertexPosA().getX()), (float) (triangle.getVertexPosA().getY()),
            (float) (triangle.getVertexPosA().getZ()));

    ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE0_ARB,
            (float) triangle.getTextureCoordB().getX(), (float) triangle.getTextureCoordB().getY());
    if (twoSupported && detail0TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE1_ARB,
                (float) triangle.getTextureCoordDetail0B().getX(),
                (float) triangle.getTextureCoordDetail0B().getY());
    if (threeSupported && detail1TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE2_ARB,
                (float) triangle.getTextureCoordDetail1B().getX(),
                (float) triangle.getTextureCoordDetail1B().getY());
    GL11.glColor4f((float) triangle.getVertexColorB().getA(), (float) triangle.getVertexColorB().getB(),
            (float) triangle.getVertexColorB().getC(), (float) triangle.getVertexColorB().getD());

    GL11.glVertex3f((float) (triangle.getVertexPosB().getX()), (float) (triangle.getVertexPosB().getY()),
            (float) (triangle.getVertexPosB().getZ()));

    ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE0_ARB,
            (float) triangle.getTextureCoordC().getX(), (float) triangle.getTextureCoordC().getY());
    if (twoSupported && detail0TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE1_ARB,
                (float) triangle.getTextureCoordDetail0C().getX(),
                (float) triangle.getTextureCoordDetail0C().getY());
    if (threeSupported && detail1TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE2_ARB,
                (float) triangle.getTextureCoordDetail1C().getX(),
                (float) triangle.getTextureCoordDetail1C().getY());
    GL11.glColor4f((float) triangle.getVertexColorC().getA(), (float) triangle.getVertexColorC().getB(),
            (float) triangle.getVertexColorC().getC(), (float) triangle.getVertexColorC().getD());
    GL11.glVertex3f((float) (triangle.getVertexPosC().getX()), (float) (triangle.getVertexPosC().getY()),
            (float) (triangle.getVertexPosC().getZ()));
    GL11.glEnd();//from w w w.  ja v a  2 s.c  o m
}

From source file:espresso3d.engine.renderer.E3DGeometryRenderer.java

License:Open Source License

/**
 * Render a quad normally (solid or textured)
 * @param quad//from  w w  w.  j  a  v a  2s  .  c om
 */
private void renderTexturedQuad(E3DQuad quad) {
    int detail0TextureID = -1;
    int detail1TextureID = -1;

    if (quad.isTextureDetail0Available())
        detail0TextureID = quad.getTextureDetail0().getGlTextureID();
    if (quad.isTextureDetail1Available())
        detail1TextureID = quad.getTextureDetail1().getGlTextureID();

    //Draw vertices
    ARBMultitexture.glActiveTextureARB(ARBMultitexture.GL_TEXTURE0_ARB);

    boolean twoSupported = getEngine().getFeatureChecker().getArbMultitextureNumTexUnitsSupported() >= 2;
    boolean threeSupported = getEngine().getFeatureChecker().getArbMultitextureNumTexUnitsSupported() >= 3;
    GL11.glBegin(GL11.GL_QUADS); // Begin Drawing Triangles
    ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE0_ARB,
            (float) quad.getTextureCoordA().getX(), (float) quad.getTextureCoordA().getY());
    if (twoSupported && detail0TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE1_ARB,
                (float) quad.getTextureCoordDetail0A().getX(), (float) quad.getTextureCoordDetail0A().getY());
    if (threeSupported && detail1TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE2_ARB,
                (float) quad.getTextureCoordDetail1A().getX(), (float) quad.getTextureCoordDetail1A().getY());
    GL11.glColor4f((float) quad.getVertexColorA().getA(), (float) quad.getVertexColorA().getB(),
            (float) quad.getVertexColorA().getC(), (float) quad.getVertexColorA().getD());
    GL11.glVertex3f((float) (quad.getVertexPosA().getX()), (float) (quad.getVertexPosA().getY()),
            (float) (quad.getVertexPosA().getZ()));

    ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE0_ARB,
            (float) quad.getTextureCoordB().getX(), (float) quad.getTextureCoordB().getY());
    if (twoSupported && detail0TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE1_ARB,
                (float) quad.getTextureCoordDetail0B().getX(), (float) quad.getTextureCoordDetail0B().getY());
    if (threeSupported && detail1TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE2_ARB,
                (float) quad.getTextureCoordDetail1B().getX(), (float) quad.getTextureCoordDetail1B().getY());
    GL11.glColor4f((float) quad.getVertexColorB().getA(), (float) quad.getVertexColorB().getB(),
            (float) quad.getVertexColorB().getC(), (float) quad.getVertexColorB().getD());
    GL11.glVertex3f((float) (quad.getVertexPosB().getX()), (float) (quad.getVertexPosB().getY()),
            (float) (quad.getVertexPosB().getZ()));

    ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE0_ARB,
            (float) quad.getTextureCoordC().getX(), (float) quad.getTextureCoordC().getY());
    if (twoSupported && detail0TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE1_ARB,
                (float) quad.getTextureCoordDetail0C().getX(), (float) quad.getTextureCoordDetail0C().getY());
    if (threeSupported && detail1TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE2_ARB,
                (float) quad.getTextureCoordDetail1C().getX(), (float) quad.getTextureCoordDetail1C().getY());
    GL11.glColor4f((float) quad.getVertexColorC().getA(), (float) quad.getVertexColorC().getB(),
            (float) quad.getVertexColorC().getC(), (float) quad.getVertexColorC().getD());
    GL11.glVertex3f((float) (quad.getVertexPosC().getX()), (float) (quad.getVertexPosC().getY()),
            (float) (quad.getVertexPosC().getZ()));

    ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE0_ARB,
            (float) quad.getTextureCoordD().getX(), (float) quad.getTextureCoordD().getY());
    if (twoSupported && detail0TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE1_ARB,
                (float) quad.getTextureCoordDetail0D().getX(), (float) quad.getTextureCoordDetail0D().getY());
    if (threeSupported && detail1TextureID != -1)
        ARBMultitexture.glMultiTexCoord2fARB(ARBMultitexture.GL_TEXTURE2_ARB,
                (float) quad.getTextureCoordDetail1D().getX(), (float) quad.getTextureCoordDetail1D().getY());
    GL11.glColor4f((float) quad.getVertexColorD().getA(), (float) quad.getVertexColorD().getB(),
            (float) quad.getVertexColorD().getC(), (float) quad.getVertexColorD().getD());
    GL11.glVertex3f((float) (quad.getVertexPosD().getX()), (float) (quad.getVertexPosD().getY()),
            (float) (quad.getVertexPosD().getZ()));
    GL11.glEnd();
}

From source file:kuake2.render.lwjgl.Image.java

License:Open Source License

void GL_SelectTexture(int texture /* GLenum */) {
    int tmu;/* w w w. j av a 2s  .  c  o  m*/

    tmu = (texture == GL_TEXTURE0) ? 0 : 1;

    if (tmu == gl_state.currenttmu) {
        return;
    }

    gl_state.currenttmu = tmu;

    ARBMultitexture.glActiveTextureARB(texture);
    ARBMultitexture.glClientActiveTextureARB(texture);
}