Example usage for org.lwjgl.opengl GL11 GL_TEXTURE_ENV

List of usage examples for org.lwjgl.opengl GL11 GL_TEXTURE_ENV

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL11 GL_TEXTURE_ENV.

Prototype

int GL_TEXTURE_ENV

To view the source code for org.lwjgl.opengl GL11 GL_TEXTURE_ENV.

Click Source Link

Document

TextureEnvTarget

Usage

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

License:Open Source License

public static void applyCombineFactors(final Texture texture, final TextureUnitRecord unitRecord,
        final int unit, final TextureStateRecord record, final ContextCapabilities caps) {
    // check that this is a valid fixed function unit. glTexEnv is only
    // supported for unit < GL_MAX_TEXTURE_UNITS
    if (unit >= caps.getNumberOfFixedTextureUnits()) {
        return;//from  w  w  w.  j  a  v a  2 s  .com
    }

    // first thing's first... if we are doing dot3 and don't
    // support it, disable this texture.
    boolean checked = false;
    if (!caps.isEnvDot3TextureCombineSupported() && (texture.getCombineFuncRGB() == CombinerFunctionRGB.Dot3RGB
            || texture.getCombineFuncRGB() == CombinerFunctionRGB.Dot3RGBA)) {

        // disable
        disableTexturing(unitRecord, record, unit, caps);

        // No need to continue
        return;
    }

    // Okay, now let's set our scales if we need to:
    // First RGB Combine scale
    if (!unitRecord.isValid() || unitRecord.envRGBScale != texture.getCombineScaleRGB()) {
        if (!checked) {
            checkAndSetUnit(unit, record, caps);
            checked = true;
        }
        GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_RGB_SCALE_ARB,
                texture.getCombineScaleRGB().floatValue());
        unitRecord.envRGBScale = texture.getCombineScaleRGB();
    }
    // Then Alpha Combine scale
    if (!unitRecord.isValid() || unitRecord.envAlphaScale != texture.getCombineScaleAlpha()) {
        if (!checked) {
            checkAndSetUnit(unit, record, caps);
            checked = true;
        }
        GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_ALPHA_SCALE, texture.getCombineScaleAlpha().floatValue());
        unitRecord.envAlphaScale = texture.getCombineScaleAlpha();
    }

    // Time to set the RGB combines
    final CombinerFunctionRGB rgbCombineFunc = texture.getCombineFuncRGB();
    if (!unitRecord.isValid() || unitRecord.rgbCombineFunc != rgbCombineFunc) {
        if (!checked) {
            checkAndSetUnit(unit, record, caps);
            checked = true;
        }
        GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_COMBINE_RGB_ARB,
                LwjglTextureUtil.getGLCombineFuncRGB(rgbCombineFunc));
        unitRecord.rgbCombineFunc = rgbCombineFunc;
    }

    CombinerSource combSrcRGB = texture.getCombineSrc0RGB();
    if (!unitRecord.isValid() || unitRecord.combSrcRGB0 != combSrcRGB) {
        if (!checked) {
            checkAndSetUnit(unit, record, caps);
            checked = true;
        }
        GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_SOURCE0_RGB_ARB,
                LwjglTextureUtil.getGLCombineSrc(combSrcRGB));
        unitRecord.combSrcRGB0 = combSrcRGB;
    }

    CombinerOperandRGB combOpRGB = texture.getCombineOp0RGB();
    if (!unitRecord.isValid() || unitRecord.combOpRGB0 != combOpRGB) {
        if (!checked) {
            checkAndSetUnit(unit, record, caps);
            checked = true;
        }
        GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_OPERAND0_RGB_ARB,
                LwjglTextureUtil.getGLCombineOpRGB(combOpRGB));
        unitRecord.combOpRGB0 = combOpRGB;
    }

    // We only need to do Arg1 or Arg2 if we aren't in Replace mode
    if (rgbCombineFunc != CombinerFunctionRGB.Replace) {

        combSrcRGB = texture.getCombineSrc1RGB();
        if (!unitRecord.isValid() || unitRecord.combSrcRGB1 != combSrcRGB) {
            if (!checked) {
                checkAndSetUnit(unit, record, caps);
                checked = true;
            }
            GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_SOURCE1_RGB_ARB,
                    LwjglTextureUtil.getGLCombineSrc(combSrcRGB));
            unitRecord.combSrcRGB1 = combSrcRGB;
        }

        combOpRGB = texture.getCombineOp1RGB();
        if (!unitRecord.isValid() || unitRecord.combOpRGB1 != combOpRGB) {
            if (!checked) {
                checkAndSetUnit(unit, record, caps);
                checked = true;
            }
            GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_OPERAND1_RGB_ARB,
                    LwjglTextureUtil.getGLCombineOpRGB(combOpRGB));
            unitRecord.combOpRGB1 = combOpRGB;
        }

        // We only need to do Arg2 if we are in Interpolate mode
        if (rgbCombineFunc == CombinerFunctionRGB.Interpolate) {

            combSrcRGB = texture.getCombineSrc2RGB();
            if (!unitRecord.isValid() || unitRecord.combSrcRGB2 != combSrcRGB) {
                if (!checked) {
                    checkAndSetUnit(unit, record, caps);
                    checked = true;
                }
                GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_SOURCE2_RGB_ARB,
                        LwjglTextureUtil.getGLCombineSrc(combSrcRGB));
                unitRecord.combSrcRGB2 = combSrcRGB;
            }

            combOpRGB = texture.getCombineOp2RGB();
            if (!unitRecord.isValid() || unitRecord.combOpRGB2 != combOpRGB) {
                if (!checked) {
                    checkAndSetUnit(unit, record, caps);
                    checked = true;
                }
                GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_OPERAND2_RGB_ARB,
                        LwjglTextureUtil.getGLCombineOpRGB(combOpRGB));
                unitRecord.combOpRGB2 = combOpRGB;
            }

        }
    }

    // Now Alpha combines
    final CombinerFunctionAlpha alphaCombineFunc = texture.getCombineFuncAlpha();
    if (!unitRecord.isValid() || unitRecord.alphaCombineFunc != alphaCombineFunc) {
        if (!checked) {
            checkAndSetUnit(unit, record, caps);
            checked = true;
        }
        GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_COMBINE_ALPHA_ARB,
                LwjglTextureUtil.getGLCombineFuncAlpha(alphaCombineFunc));
        unitRecord.alphaCombineFunc = alphaCombineFunc;
    }

    CombinerSource combSrcAlpha = texture.getCombineSrc0Alpha();
    if (!unitRecord.isValid() || unitRecord.combSrcAlpha0 != combSrcAlpha) {
        if (!checked) {
            checkAndSetUnit(unit, record, caps);
            checked = true;
        }
        GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_SOURCE0_ALPHA_ARB,
                LwjglTextureUtil.getGLCombineSrc(combSrcAlpha));
        unitRecord.combSrcAlpha0 = combSrcAlpha;
    }

    CombinerOperandAlpha combOpAlpha = texture.getCombineOp0Alpha();
    if (!unitRecord.isValid() || unitRecord.combOpAlpha0 != combOpAlpha) {
        if (!checked) {
            checkAndSetUnit(unit, record, caps);
            checked = true;
        }
        GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_OPERAND0_ALPHA_ARB,
                LwjglTextureUtil.getGLCombineOpAlpha(combOpAlpha));
        unitRecord.combOpAlpha0 = combOpAlpha;
    }

    // We only need to do Arg1 or Arg2 if we aren't in Replace mode
    if (alphaCombineFunc != CombinerFunctionAlpha.Replace) {

        combSrcAlpha = texture.getCombineSrc1Alpha();
        if (!unitRecord.isValid() || unitRecord.combSrcAlpha1 != combSrcAlpha) {
            if (!checked) {
                checkAndSetUnit(unit, record, caps);
                checked = true;
            }
            GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_SOURCE1_ALPHA_ARB,
                    LwjglTextureUtil.getGLCombineSrc(combSrcAlpha));
            unitRecord.combSrcAlpha1 = combSrcAlpha;
        }

        combOpAlpha = texture.getCombineOp1Alpha();
        if (!unitRecord.isValid() || unitRecord.combOpAlpha1 != combOpAlpha) {
            if (!checked) {
                checkAndSetUnit(unit, record, caps);
                checked = true;
            }
            GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_OPERAND1_ALPHA_ARB,
                    LwjglTextureUtil.getGLCombineOpAlpha(combOpAlpha));
            unitRecord.combOpAlpha1 = combOpAlpha;
        }

        // We only need to do Arg2 if we are in Interpolate mode
        if (alphaCombineFunc == CombinerFunctionAlpha.Interpolate) {

            combSrcAlpha = texture.getCombineSrc2Alpha();
            if (!unitRecord.isValid() || unitRecord.combSrcAlpha2 != combSrcAlpha) {
                if (!checked) {
                    checkAndSetUnit(unit, record, caps);
                    checked = true;
                }
                GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_SOURCE2_ALPHA_ARB,
                        LwjglTextureUtil.getGLCombineSrc(combSrcAlpha));
                unitRecord.combSrcAlpha2 = combSrcAlpha;
            }

            combOpAlpha = texture.getCombineOp2Alpha();
            if (!unitRecord.isValid() || unitRecord.combOpAlpha2 != combOpAlpha) {
                if (!checked) {
                    checkAndSetUnit(unit, record, caps);
                    checked = true;
                }
                GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, ARBTextureEnvCombine.GL_OPERAND2_ALPHA_ARB,
                        LwjglTextureUtil.getGLCombineOpAlpha(combOpAlpha));
                unitRecord.combOpAlpha2 = combOpAlpha;
            }
        }
    }
}

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

License:Open Source License

public static void applyEnvMode(final ApplyMode mode, final TextureUnitRecord unitRecord, final int unit,
        final TextureStateRecord record, final ContextCapabilities caps) {
    if (!unitRecord.isValid() || unitRecord.envMode != mode) {
        checkAndSetUnit(unit, record, caps);
        GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, LwjglTextureUtil.getGLEnvMode(mode));
        unitRecord.envMode = mode;//w  w w.  ja  va  2 s  .  c om
    }
}

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

License:Open Source License

public static void applyBlendColor(final Texture texture, final TextureUnitRecord unitRecord, final int unit,
        final TextureStateRecord record, final ContextCapabilities caps) {
    final ReadOnlyColorRGBA texBlend = texture.getConstantColor();
    if (!unitRecord.isValid() || !unitRecord.blendColor.equals(texBlend)) {
        checkAndSetUnit(unit, record, caps);
        TextureRecord.colorBuffer.clear();
        TextureRecord.colorBuffer.put(texBlend.getRed()).put(texBlend.getGreen()).put(texBlend.getBlue())
                .put(texBlend.getAlpha());
        TextureRecord.colorBuffer.rewind();
        GL11.glTexEnv(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_COLOR, TextureRecord.colorBuffer);
        unitRecord.blendColor.set(texBlend);
    }/*from  w ww  .  ja v a2  s.  c om*/
}

From source file:com.damagedearth.Utilities.Components.TrueTypeFont.java

License:Open Source License

public static int loadImage(BufferedImage bufferedImage) {
    try {// w w w  .  j a v  a 2 s . com
        short width = (short) bufferedImage.getWidth();
        short height = (short) bufferedImage.getHeight();
        //textureLoader.bpp = bufferedImage.getColorModel().hasAlpha() ? (byte)32 : (byte)24;
        int bpp = (byte) bufferedImage.getColorModel().getPixelSize();
        ByteBuffer byteBuffer;
        DataBuffer db = bufferedImage.getData().getDataBuffer();
        if (db instanceof DataBufferInt) {
            int intI[] = ((DataBufferInt) (bufferedImage.getData().getDataBuffer())).getData();
            byte newI[] = new byte[intI.length * 4];
            for (int i = 0; i < intI.length; i++) {
                byte b[] = intToByteArray(intI[i]);
                int newIndex = i * 4;

                newI[newIndex] = b[1];
                newI[newIndex + 1] = b[2];
                newI[newIndex + 2] = b[3];
                newI[newIndex + 3] = b[0];
            }

            byteBuffer = ByteBuffer.allocateDirect(width * height * (bpp / 8)).order(ByteOrder.nativeOrder())
                    .put(newI);
        } else {
            byteBuffer = ByteBuffer.allocateDirect(width * height * (bpp / 8)).order(ByteOrder.nativeOrder())
                    .put(((DataBufferByte) (bufferedImage.getData().getDataBuffer())).getData());
        }
        byteBuffer.flip();

        int internalFormat = GL11.GL_RGBA8, format = GL11.GL_RGBA;
        IntBuffer textureId = BufferUtils.createIntBuffer(1);
        ;
        GL11.glGenTextures(textureId);
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId.get(0));

        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_CLAMP);
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP);

        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.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE);

        GLU.gluBuild2DMipmaps(GL11.GL_TEXTURE_2D, internalFormat, width, height, format, GL11.GL_UNSIGNED_BYTE,
                byteBuffer);
        return textureId.get(0);

    } catch (Exception e) {
        e.printStackTrace();
        System.exit(-1);
    }

    return -1;
}

From source file:com.dyonovan.tcnodetracker.lib.truetyper.TrueTypeFont.java

License:Open Source License

public static int loadImage(BufferedImage bufferedImage) {
    try {//from   w ww . j  a v  a  2s.com
        short width = (short) bufferedImage.getWidth();
        short height = (short) bufferedImage.getHeight();
        //textureLoader.bpp = bufferedImage.getColorModel().hasAlpha() ? (byte)32 : (byte)24;
        int bpp = (byte) bufferedImage.getColorModel().getPixelSize();
        ByteBuffer byteBuffer;
        DataBuffer db = bufferedImage.getData().getDataBuffer();
        if (db instanceof DataBufferInt) {
            int intI[] = ((DataBufferInt) (bufferedImage.getData().getDataBuffer())).getData();
            byte newI[] = new byte[intI.length * 4];
            for (int i = 0; i < intI.length; i++) {
                byte b[] = intToByteArray(intI[i]);
                int newIndex = i * 4;

                newI[newIndex] = b[1];
                newI[newIndex + 1] = b[2];
                newI[newIndex + 2] = b[3];
                newI[newIndex + 3] = b[0];
            }

            byteBuffer = ByteBuffer.allocateDirect(width * height * (bpp / 8)).order(ByteOrder.nativeOrder())
                    .put(newI);
        } else {
            byteBuffer = ByteBuffer.allocateDirect(width * height * (bpp / 8)).order(ByteOrder.nativeOrder())
                    .put(((DataBufferByte) (bufferedImage.getData().getDataBuffer())).getData());
        }
        byteBuffer.flip();

        int internalFormat = GL11.GL_RGBA8, format = GL11.GL_RGBA;
        IntBuffer textureId = BufferUtils.createIntBuffer(1);
        ;
        GL11.glGenTextures(textureId);
        GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureId.get(0));

        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL11.GL_CLAMP);
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL11.GL_CLAMP);

        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
        GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST);
        //GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
        //GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR_MIPMAP_NEAREST);

        //GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR_MIPMAP_LINEAR);
        //GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST_MIPMAP_LINEAR);
        //GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_NEAREST_MIPMAP_NEAREST);

        GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE);

        GLU.gluBuild2DMipmaps(GL11.GL_TEXTURE_2D, internalFormat, width, height, format, GL11.GL_UNSIGNED_BYTE,
                byteBuffer);
        return textureId.get(0);

    } catch (Exception e) {
        e.printStackTrace();
        System.exit(-1);
    }

    return -1;
}

From source file:com.golemgame.properties.fengGUI.AppearanceDisplayer.java

License:Open Source License

private void drawScaledTintedImage(Graphics g, IOpenGL gl, ITexture texture, ColorRGBA color, int x, int y,
        int width, int height) {
    x += g.getTranslation().getX();/*from  ww w . j av  a  2s .c om*/
    y += g.getTranslation().getY();

    gl.enableTexture2D(true);

    {
        //gl.setTexEnvModeModulate();
    }

    colorBuffer.clear();
    colorBuffer.put(color.r).put(color.g).put(color.b).put(color.a);
    colorBuffer.rewind();

    texture.bind();
    GL11.glTexEnv(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_COLOR, colorBuffer);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);//inform gl that no mipmaps are being used.
    // GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID);
    GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_BLEND);
    //  GL11.glTexEnvi(GL11.GL_TEXTURE_ENV,
    //           GL11.GL_TEXTURE_ENV_MODE, GL11.GL_DECAL);
    gl.startQuads();

    float startY = 0.0f; // top
    float startX = 0.0f; // left
    float endY = 1.0f; // bottom
    float endX = 1.0f; // right

    int rWidth = width;
    int rHeight = height;

    // fit into clip - both the polygon to render (x,y,x+w,y+h) AND the
    // texture (0,0->1,1)
    Rectangle clipSpace = g.getClipSpace();
    if (x < clipSpace.getX()) {
        rWidth -= clipSpace.getX() - x;
        startX = (float) (clipSpace.getX() - x) / (float) width;
        x = clipSpace.getX();
    }

    if (x + rWidth > clipSpace.getX() + clipSpace.getWidth()) {
        rWidth = clipSpace.getX() + clipSpace.getWidth() - x;
        endX = (float) rWidth / (float) width;
    }

    if (y < clipSpace.getY()) {
        rHeight -= clipSpace.getY() - y;
        endY = (float) rHeight / (float) height;
        y = clipSpace.getY();
    }

    if (y + rHeight > clipSpace.getY() + clipSpace.getHeight()) {
        rHeight = clipSpace.getY() + clipSpace.getHeight() - y;
        startY = (float) (height - rHeight) / (float) height;
    }

    gl.texCoord(startX, endY);
    gl.vertex(x, y);

    gl.texCoord(startX, startY);
    gl.vertex(x, rHeight + y);

    gl.texCoord(endX, startY);
    gl.vertex(rWidth + x, rHeight + y);

    gl.texCoord(endX, endY);
    gl.vertex(rWidth + x, y);
    gl.end();
    gl.enableTexture2D(false);
}

From source file:com.owens.oobjloader.lwjgl.TextureLoader.java

License:BSD License

public int convertToTexture(BufferedImage img) {
    int[] pixels = new int[img.getWidth() * img.getHeight()];
    PixelGrabber grabber = new PixelGrabber(img, 0, 0, img.getWidth(), img.getHeight(), pixels, 0,
            img.getWidth());/*ww w .jav a 2 s . c om*/
    try {
        grabber.grabPixels();
    } catch (InterruptedException e) {
        log.log(SEVERE, "InterruptedException while trying to grab pixels, e=" + e);
        e.printStackTrace();
        return -1;
    }

    int bufLen = 0;
    bufLen = pixels.length * 4;

    ByteBuffer oglPixelBuf = BufferUtils.createByteBuffer(bufLen);

    for (int y = img.getHeight() - 1; y >= 0; y--) {
        for (int x = 0; x < img.getWidth(); x++) {
            int pixel = pixels[y * img.getWidth() + x];
            oglPixelBuf.put((byte) ((pixel >> 16) & 0xFF));
            oglPixelBuf.put((byte) ((pixel >> 8) & 0xFF));
            oglPixelBuf.put((byte) ((pixel >> 0) & 0xFF));
            oglPixelBuf.put((byte) ((pixel >> 24) & 0xFF));
        }
    }

    oglPixelBuf.flip();

    ByteBuffer temp = ByteBuffer.allocateDirect(4);
    temp.order(ByteOrder.nativeOrder());
    IntBuffer textBuf = temp.asIntBuffer();
    GL11.glGenTextures(textBuf);
    int textureID = textBuf.get(0);

    GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureID);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, GL12.GL_CLAMP_TO_EDGE);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, GL12.GL_CLAMP_TO_EDGE);
    GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE);

    GL11.glTexImage2D(GL11.GL_TEXTURE_2D, TEXTURE_LEVEL, GL11.GL_RGBA8, img.getWidth(), img.getHeight(), 0,
            GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, oglPixelBuf);

    return textureID;
}

From source file:com.specialeffect.gui.IconOverlay.java

License:Open Source License

private void drawTexture() {
    // calculate position
    int height = (int) (mDisplayHeight * mHeight);
    int width = (int) (height * mAspectRatio);
    int centreX = (int) (mCentreX * mDisplayWidth);
    int centreY = (int) (mCentreY * mDisplayHeight);

    GL11.glDisable(GL11.GL_LIGHTING);/*from w w  w. ja va2s.c  om*/
    GL11.glPushAttrib(GL11.GL_TEXTURE_BIT);

    this.mc.renderEngine.bindTexture(mResource);

    GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_ADD);

    GL11.glColor4f(1.0f, 1.0f, 1.0f, mAlpha);

    ModUtils.drawTexQuad(centreX - width / 2, centreY - height / 2, width, height);

    // reset GL attributes!
    GL11.glPopAttrib();

}

From source file:com.specialeffect.gui.JoystickControlOverlay.java

License:Open Source License

@SubscribeEvent
public void onRenderExperienceBar(RenderGameOverlayEvent event) {

    // We draw after the ExperienceBar has drawn.  The event raised by GuiIngameForge.pre()
    // will return true from isCancelable.  If you call event.setCanceled(true) in
    // that case, the portion of rendering which this event represents will be canceled.
    // We want to draw *after* the experience bar is drawn, so we make sure isCancelable() returns
    // false and that the eventType represents the ExperienceBar event.
    if (event.isCancelable() || event.getType() != ElementType.EXPERIENCE) {
        return;/*from w  w  w.  j  ava 2 s  .  co m*/
    }

    if (mVisible) {

        this.rescale();

        GL11.glDisable(GL11.GL_LIGHTING);

        this.mc.renderEngine.bindTexture(mResource);

        GL11.glPushAttrib(GL11.GL_TEXTURE_BIT);
        GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_ADD);

        GL11.glColor4f(1.0f, 1.0f, 1.0f, 0.5f);

        ModUtils.drawTexQuad(0, 0, mDisplayWidth, mDisplayHeight);

        // reset GL attributes!
        GL11.glPopAttrib();
    }

}

From source file:com.specialeffect.gui.StateOverlay.java

License:Open Source License

private void drawScaledTextureWithGlow(ResourceLocation res, int x, int y, int width, int height) {
    GL11.glPushAttrib(GL11.GL_TEXTURE_BIT);

    this.mc.renderEngine.bindTexture(res);

    // First draw enlarged and blurred, for glow.
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MIN_FILTER, GL11.GL_LINEAR);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_LINEAR);

    GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_ADD);

    // We draw the texture larger, in white, at progressive levels of alpha 
    // for blur effect (the alpha gets added on each layer)
    int blurSteps = 4; // how many levels of progressive blur
    double totalBlur = width / 12; // in pixels      
    GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f / blurSteps);

    for (int i = 0; i < blurSteps; i++) {
        double blurAmount = totalBlur / blurSteps * (i + 1);
        ModUtils.drawTexQuad(x - blurAmount, y - blurAmount, width + 2 * blurAmount, height + 2 * blurAmount);
    }//from ww w .  jav  a2s  .co  m

    GL11.glTexEnvi(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_REPLACE);
    GL11.glColor3f(1.0f, 1.0f, 1.0f);
    this.mc.renderEngine.bindTexture(res);
    ModUtils.drawTexQuad(x, y, width, height);

    // reset GL attributes!
    GL11.glPopAttrib();

}