Example usage for org.lwjgl.opengl GL11 glAlphaFunc

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

Introduction

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

Prototype

public static native void glAlphaFunc(@NativeType("GLenum") int func, @NativeType("GLfloat") float ref);

Source Link

Document

The alpha test discards a fragment conditionally based on the outcome of a comparison between the incoming fragment’s alpha value and a constant value.

Usage

From source file:de.sanandrew.core.manpack.util.client.helpers.ItemRenderHelper.java

License:Creative Commons License

/**
 * Renders an ItemStack in 3D.//from   ww  w  . ja  v a 2 s.c o m
 *
 * @param stack the ItemStack to be rendered
 */
public static void renderItemIn3D(ItemStack stack) {
    if (stack.getItem() != null) {
        GL11.glPushMatrix();

        GL11.glEnable(GL12.GL_RESCALE_NORMAL);
        IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(stack, ItemRenderType.EQUIPPED);
        if (customRenderer != null) {
            Minecraft.getMinecraft().renderEngine.bindTexture(
                    Minecraft.getMinecraft().renderEngine.getResourceLocation(stack.getItemSpriteNumber()));

            GL11.glPushMatrix();
            GL11.glTranslatef(0.5F, 0.5F, 0.0F);
            float blockScale = 0.5F;
            GL11.glScalef(blockScale, blockScale, blockScale);
            ForgeHooksClient.renderEquippedItem(ItemRenderType.EQUIPPED, customRenderer, renderBlocksRi,
                    Minecraft.getMinecraft().player, stack);
            GL11.glPopMatrix();
        } else if (stack.getItemSpriteNumber() == 0 && stack.getItem() instanceof ItemBlock
                && RenderBlocks.renderItemIn3d(Block.getBlockFromItem(stack.getItem()).getRenderType())) {
            Minecraft.getMinecraft().renderEngine.bindTexture(
                    Minecraft.getMinecraft().renderEngine.getResourceLocation(stack.getItemSpriteNumber()));

            Block block = Block.getBlockFromItem(stack.getItem());

            float blockScale = 0.5F;
            int renderType = block.getRenderType();

            if (renderType == 1 || renderType == 19 || renderType == 12 || renderType == 2) {
                blockScale = 1.0F;
            }

            if (block.getRenderBlockPass() > 0) {
                GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
                GL11.glEnable(GL11.GL_BLEND);
                OpenGlHelper.glBlendFunc(770, 771, 1, 0);
            }

            GL11.glTranslatef(0.5F, 0.5F, 0.0F);
            GL11.glScalef(blockScale, blockScale, blockScale);

            GL11.glPushMatrix();
            renderBlocksRi.renderBlockAsItem(block, stack.getItemDamage(), 1.0F);
            GL11.glPopMatrix();

            if (block.getRenderBlockPass() > 0) {
                GL11.glDisable(GL11.GL_BLEND);
            }
        } else {
            if (stack.getItem().requiresMultipleRenderPasses()) {
                for (int j = 0; j < stack.getItem().getRenderPasses(stack.getItemDamage()); j++) {
                    IIcon icon = stack.getItem().getIcon(stack, j);

                    int color = stack.getItem().getColorFromItemStack(stack, j);
                    float red = (color >> 16 & 255) / 255.0F;
                    float green = (color >> 8 & 255) / 255.0F;
                    float blue = (color & 255) / 255.0F;
                    GL11.glColor4f(red, green, blue, 1.0F);
                    renderItemIn3D(icon, stack.hasEffect(j), 1);
                }
            } else {
                IIcon icon = stack.getItem().getIcon(stack, 0);

                if (stack.getItem() instanceof ItemCloth) {
                    GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
                    GL11.glEnable(GL11.GL_BLEND);
                    OpenGlHelper.glBlendFunc(770, 771, 1, 0);
                }

                int color = stack.getItem().getColorFromItemStack(stack, 0);
                float red = (color >> 16 & 255) / 255.0F;
                float green = (color >> 8 & 255) / 255.0F;
                float blue = (color & 255) / 255.0F;
                GL11.glColor4f(red, green, blue, 1.0F);
                renderItemIn3D(icon, stack.hasEffect(0), 1);

                if (stack.getItem() instanceof ItemCloth) {
                    GL11.glDisable(GL11.GL_BLEND);
                }
            }
        }

        GL11.glDisable(GL12.GL_RESCALE_NORMAL);
        GL11.glPopMatrix();
        TextureUtil.func_147945_b();
    }
}

From source file:de.sanandrew.mods.claysoldiers.client.particle.ParticleRenderDispatcher.java

License:Creative Commons License

public static void dispatch() {
    Tessellator tessellator = Tessellator.instance;

    GL11.glDepthMask(false);/*  w  ww .j  a  v a 2 s . c  om*/
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
    GL11.glAlphaFunc(GL11.GL_GREATER, 0.003921569F);
    ParticleNexusFX.dispatchQueuedRenders(tessellator);
    GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glDepthMask(true);
}

From source file:forestry.apiculture.render.ParticleRenderer.java

License:Open Source License

private synchronized void render(float partialTicks) {
    Minecraft.getMinecraft().mcProfiler.startSection(name + "-render");

    float rotationX = ActiveRenderInfo.rotationX;
    float rotationZ = ActiveRenderInfo.rotationZ;
    float rotationYZ = ActiveRenderInfo.rotationYZ;
    float rotationXY = ActiveRenderInfo.rotationXY;
    float rotationXZ = ActiveRenderInfo.rotationXZ;

    EntityLivingBase player = Minecraft.getMinecraft().renderViewEntity;
    EntityFX.interpPosX = player.lastTickPosX + (player.posX - player.lastTickPosX) * partialTicks;
    EntityFX.interpPosY = player.lastTickPosY + (player.posY - player.lastTickPosY) * partialTicks;
    EntityFX.interpPosZ = player.lastTickPosZ + (player.posZ - player.lastTickPosZ) * partialTicks;

    // bind the texture
    Minecraft.getMinecraft().renderEngine.bindTexture(TextureMap.locationItemsTexture);

    // save the old gl state
    GL11.glPushAttrib(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);

    // gl states/settings for drawing
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
    GL11.glDepthMask(false);/*from w ww . j  a  v a  2  s  . c om*/
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE);
    GL11.glAlphaFunc(GL11.GL_GREATER, 0.003921569F);

    Tessellator tessellator = Tessellator.instance;
    tessellator.startDrawingQuads();

    for (EntityFX particle : particles) {
        tessellator.setBrightness(particle.getBrightnessForRender(partialTicks));

        particle.renderParticle(tessellator, partialTicks, rotationX, rotationXZ, rotationZ, rotationYZ,
                rotationXY);
    }

    tessellator.draw();

    // restore previous gl state
    GL11.glPopAttrib();

    Minecraft.getMinecraft().mcProfiler.endSection();
}

From source file:fr.blaze_empire.phenix246.projector_mod.client.TileEntitySpotlightRender.java

License:Creative Commons License

public void renderLaser(TileEntityEmitter tileentity, double x, double y, double z, float tick) {
    block1 = ProjectorMod.emitter;//from   w ww.  j  a  v  a 2  s.  co m
    block2 = ProjectorMod.transmitter;
    xCoord = tileentity.xCoord;
    yCoord = tileentity.yCoord;
    zCoord = tileentity.zCoord;
    world = tileentity.getWorldObj();
    direction = tileentity.getDirection();

    f0 = 0.0F;
    f1 = 1.0F;
    d0 = 0.0D;
    d1 = 1.0D;

    distanceT = MathsHelper.getMaxLengh(world, xCoord, yCoord, zCoord);
    distance = (MathsHelper.getMaxLengh(world, xCoord, yCoord, zCoord) + 0.5F);
    recepter = MathsHelper.getRecepeterBlock(world, xCoord, yCoord, zCoord);

    if (world.getBlock(xCoord, yCoord, zCoord) == block1)
        isActive = world.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord);
    if (world.getBlock(xCoord, yCoord, zCoord) == block2) // instance
    {
        TileEntityTransmitter tile = (TileEntityTransmitter) tileentity;
        isActive = tile.isActive();
    }

    // ///////////////////////////////////////////////////////////////

    // Render

    GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);

    if (isActive) {

        Tessellator tessellator = Tessellator.instance;
        this.bindTexture(texture);

        GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, 10497.0F);
        GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, 10497.0F);
        GL11.glDisable(GL11.GL_LIGHTING);
        GL11.glDisable(GL11.GL_CULL_FACE);
        GL11.glDisable(GL11.GL_BLEND);
        GL11.glDepthMask(true);
        OpenGlHelper.glBlendFunc(770, 1, 1, 0);

        time = (float) world.getTotalWorldTime() + tick;
        f3 = -time * 0.2F - (float) MathHelper.floor_float(-time * 0.1F);
        b0 = 1;
        d3 = (double) time * 0.025D * (d1 - (double) (b0 & 1) * 2.5D);

        // ///////////////////////////////////////////////////////////////

        // determine the coordinates

        d5 = (double) b0 * 0.2D;
        d7 = 0.5D + Math.cos(d3 + 2.356194490192345D) * d5;
        d9 = 0.5D + Math.sin(d3 + 2.356194490192345D) * d5;
        d11 = 0.5D + Math.cos(d3 + (Math.PI / 4D)) * d5;
        d13 = 0.5D + Math.sin(d3 + (Math.PI / 4D)) * d5;
        d15 = 0.5D + Math.cos(d3 + 3.9269908169872414D) * d5;
        d17 = 0.5D + Math.sin(d3 + 3.9269908169872414D) * d5;
        d19 = 0.5D + Math.cos(d3 + 5.497787143782138D) * d5;
        d21 = 0.5D + Math.sin(d3 + 5.497787143782138D) * d5;
        d25 = 0.0D;
        d27 = 1.0D;
        d28 = (double) (-f1 + f3);

        d4 = 0.2D;
        d6 = 0.8D;
        d8 = 0.2D;
        d10 = 0.2D;
        d12 = 0.8D;
        d14 = 0.8D;
        d16 = 0.8D;
        d20 = 0.0D;
        d22 = 1.0D;
        d24 = (double) (-f1 + f3);
        d30 = 0.2D;

        // ///////////////////////////////////////////////////////////////

        // determine the colors
        short[] rgb = { 255, 255, 255 };
        rgb[0] = tileentity.getRed();
        rgb[1] = tileentity.getGreen();
        rgb[2] = tileentity.getBlue();

        // = MathsHelper.getRGB(world, xCoord, yCoord, zCoord, tileentity);
        // // Send colors (RBG)
        // MathsHelper.sendRGB(world, xCoord, yCoord, zCoord, rgb[0],
        // rgb[1], rgb[2]);

        // ///////////////////////////////////////////////////////////////

        tessellator.startDrawingQuads();
        tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32);

        if (direction == 0) // bottom /** -Y */
        {
            d23 = (double) (distance * f1);
            d29 = (double) (distance * f1) * (0.5D / d5) + d28;
            d18 = (double) (distance * f1);
            d26 = (double) (distance * f1) + d24;
            y = y + 0.5D;

            tessellator.addVertexWithUV(x + d7, y - d23, z + d9, d27, d29);
            tessellator.addVertexWithUV(x + d7, y + d0, z + d9, d27, d28);
            tessellator.addVertexWithUV(x + d11, y + d0, z + d13, d25, d28);
            tessellator.addVertexWithUV(x + d11, y - d23, z + d13, d25, d29);

            tessellator.addVertexWithUV(x + d19, y - d23, z + d21, d27, d29);
            tessellator.addVertexWithUV(x + d19, y + d0, z + d21, d27, d28);
            tessellator.addVertexWithUV(x + d15, y + d0, z + d17, d25, d28);
            tessellator.addVertexWithUV(x + d15, y - d23, z + d17, d25, d29);

            tessellator.addVertexWithUV(x + d11, y - d23, z + d13, d27, d29);
            tessellator.addVertexWithUV(x + d11, y + d0, z + d13, d27, d28);
            tessellator.addVertexWithUV(x + d19, y + d0, z + d21, d25, d28);
            tessellator.addVertexWithUV(x + d19, y - d23, z + d21, d25, d29);

            tessellator.addVertexWithUV(x + d15, y - d23, z + d17, d27, d29);
            tessellator.addVertexWithUV(x + d15, y + d0, z + d17, d27, d28);
            tessellator.addVertexWithUV(x + d7, y + d0, z + d9, d25, d28);
            tessellator.addVertexWithUV(x + d7, y - d23, z + d9, d25, d29);

            tessellator.draw();

            GL11.glEnable(GL11.GL_BLEND);
            OpenGlHelper.glBlendFunc(770, 771, 1, 0);
            GL11.glDepthMask(false);

            tessellator.startDrawingQuads();
            tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32);

            tessellator.addVertexWithUV(x + d30, y - d18, z + d4, d22, d26);
            tessellator.addVertexWithUV(x + d30, y + d0, z + d4, d22, d24);
            tessellator.addVertexWithUV(x + d6, y + d0, z + d8, d20, d24);
            tessellator.addVertexWithUV(x + d6, y - d18, z + d8, d20, d26);

            tessellator.addVertexWithUV(x + d14, y - d18, z + d16, d22, d26);
            tessellator.addVertexWithUV(x + d14, y + d0, z + d16, d22, d24);
            tessellator.addVertexWithUV(x + d10, y + d0, z + d12, d20, d24);
            tessellator.addVertexWithUV(x + d10, y - d18, z + d12, d20, d26);

            tessellator.addVertexWithUV(x + d6, y - d18, z + d8, d22, d26);
            tessellator.addVertexWithUV(x + d6, y + d0, z + d8, d22, d24);
            tessellator.addVertexWithUV(x + d14, y + d0, z + d16, d20, d24);
            tessellator.addVertexWithUV(x + d14, y - d18, z + d16, d20, d26);

            tessellator.addVertexWithUV(x + d10, y - d18, z + d12, d22, d26);
            tessellator.addVertexWithUV(x + d10, y + d0, z + d12, d22, d24);
            tessellator.addVertexWithUV(x + d30, y + d0, z + d4, d20, d24);
            tessellator.addVertexWithUV(x + d30, y - d18, z + d4, d20, d26);
        }
        if (direction == 1) // Top /** +Y */
        {
            d23 = (double) (distance * f1);
            d29 = (double) (distance * f1) * (0.5D / d5) + d28;
            d18 = (double) (distance * f1);
            d26 = (double) (distance * f1) + d24;
            y = y + 0.5D;

            tessellator.addVertexWithUV(x + d7, y + d23, z + d9, d27, d29);
            tessellator.addVertexWithUV(x + d7, y + d0, z + d9, d27, d28);
            tessellator.addVertexWithUV(x + d11, y + d0, z + d13, d25, d28);
            tessellator.addVertexWithUV(x + d11, y + d23, z + d13, d25, d29);

            tessellator.addVertexWithUV(x + d19, y + d23, z + d21, d27, d29);
            tessellator.addVertexWithUV(x + d19, y + d0, z + d21, d27, d28);
            tessellator.addVertexWithUV(x + d15, y + d0, z + d17, d25, d28);
            tessellator.addVertexWithUV(x + d15, y + d23, z + d17, d25, d29);

            tessellator.addVertexWithUV(x + d11, y + d23, z + d13, d27, d29);
            tessellator.addVertexWithUV(x + d11, y + d0, z + d13, d27, d28);
            tessellator.addVertexWithUV(x + d19, y + d0, z + d21, d25, d28);
            tessellator.addVertexWithUV(x + d19, y + d23, z + d21, d25, d29);

            tessellator.addVertexWithUV(x + d15, y + d23, z + d17, d27, d29);
            tessellator.addVertexWithUV(x + d15, y + d0, z + d17, d27, d28);
            tessellator.addVertexWithUV(x + d7, y + d0, z + d9, d25, d28);
            tessellator.addVertexWithUV(x + d7, y + d23, z + d9, d25, d29);

            tessellator.draw();

            GL11.glEnable(GL11.GL_BLEND);
            OpenGlHelper.glBlendFunc(770, 771, 1, 0);
            GL11.glDepthMask(false);

            tessellator.startDrawingQuads();
            tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32);

            tessellator.addVertexWithUV(x + d30, y + d18, z + d4, d22, d26);
            tessellator.addVertexWithUV(x + d30, y + d0, z + d4, d22, d24);
            tessellator.addVertexWithUV(x + d6, y + d0, z + d8, d20, d24);
            tessellator.addVertexWithUV(x + d6, y + d18, z + d8, d20, d26);

            tessellator.addVertexWithUV(x + d14, y + d18, z + d16, d22, d26);
            tessellator.addVertexWithUV(x + d14, y + d0, z + d16, d22, d24);
            tessellator.addVertexWithUV(x + d10, y + d0, z + d12, d20, d24);
            tessellator.addVertexWithUV(x + d10, y + d18, z + d12, d20, d26);

            tessellator.addVertexWithUV(x + d6, y + d18, z + d8, d22, d26);
            tessellator.addVertexWithUV(x + d6, y + d0, z + d8, d22, d24);
            tessellator.addVertexWithUV(x + d14, y + d0, z + d16, d20, d24);
            tessellator.addVertexWithUV(x + d14, y + d18, z + d16, d20, d26);

            tessellator.addVertexWithUV(x + d10, y + d18, z + d12, d22, d26);
            tessellator.addVertexWithUV(x + d10, y + d0, z + d12, d22, d24);
            tessellator.addVertexWithUV(x + d30, y + d0, z + d4, d20, d24);
            tessellator.addVertexWithUV(x + d30, y + d18, z + d4, d20, d26);
        }

        if (direction == 2) // South /** +Z */
        {
            d23 = (double) (distance * f1);
            d29 = (double) (distance * f1) * (0.5D / d5) + d28;
            d18 = (double) (distance * f1);
            d26 = (double) (distance * f1) + d24;
            z = z + 0.5D;

            tessellator.addVertexWithUV(x + d7, y + d9, z + d23, d27, d29);
            tessellator.addVertexWithUV(x + d7, y + d9, z + d0, d27, d28);
            tessellator.addVertexWithUV(x + d11, y + d13, z + d0, d25, d28);
            tessellator.addVertexWithUV(x + d11, y + d13, z + d23, d25, d29);

            tessellator.addVertexWithUV(x + d19, y + d21, z + d23, d27, d29);
            tessellator.addVertexWithUV(x + d19, y + d21, z + d0, d27, d28);
            tessellator.addVertexWithUV(x + d15, y + d17, z + d0, d25, d28);
            tessellator.addVertexWithUV(x + d15, y + d17, z + d23, d25, d29);

            tessellator.addVertexWithUV(x + d11, y + d13, z + d23, d27, d29);
            tessellator.addVertexWithUV(x + d11, y + d13, z + d0, d27, d28);
            tessellator.addVertexWithUV(x + d19, y + d21, z + d0, d25, d28);
            tessellator.addVertexWithUV(x + d19, y + d21, z + d23, d25, d29);

            tessellator.addVertexWithUV(x + d15, y + d17, z + d23, d27, d29);
            tessellator.addVertexWithUV(x + d15, y + d17, z + d0, d27, d28);
            tessellator.addVertexWithUV(x + d7, y + d9, z + d0, d25, d28);
            tessellator.addVertexWithUV(x + d7, y + d9, z + d23, d25, d29);

            tessellator.draw();

            GL11.glEnable(GL11.GL_BLEND);
            OpenGlHelper.glBlendFunc(770, 771, 1, 0);
            GL11.glDepthMask(false);

            tessellator.startDrawingQuads();
            tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32);

            tessellator.addVertexWithUV(x + d30, y + d4, z + d18, d22, d26);
            tessellator.addVertexWithUV(x + d30, y + d4, z + d0, d22, d24);
            tessellator.addVertexWithUV(x + d6, y + d8, z + d0, d20, d24);
            tessellator.addVertexWithUV(x + d6, y + d8, z + d18, d20, d26);

            tessellator.addVertexWithUV(x + d14, y + d16, z + d18, d22, d26);
            tessellator.addVertexWithUV(x + d14, y + d16, z + d0, d22, d24);
            tessellator.addVertexWithUV(x + d10, y + d12, z + d0, d20, d24);
            tessellator.addVertexWithUV(x + d10, y + d12, z + d18, d20, d26);

            tessellator.addVertexWithUV(x + d6, y + d8, z + d18, d22, d26);
            tessellator.addVertexWithUV(x + d6, y + d8, z + d0, d22, d24);
            tessellator.addVertexWithUV(x + d14, y + d16, z + d0, d20, d24);
            tessellator.addVertexWithUV(x + d14, y + d16, z + d18, d20, d26);

            tessellator.addVertexWithUV(x + d10, y + d12, z + d18, d22, d26);
            tessellator.addVertexWithUV(x + d10, y + d12, z + d0, d22, d24);
            tessellator.addVertexWithUV(x + d30, y + d4, z + d0, d20, d24);
            tessellator.addVertexWithUV(x + d30, y + d4, z + d18, d20, d26);
        }
        if (direction == 4) // North /** -Z */
        {
            d23 = (double) (distance * f1);
            d29 = (double) (distance * f1) * (0.5D / d5) + d28;
            d18 = (double) (distance * f1);
            d26 = (double) (distance * f1) + d24;
            z = z + 0.5D;

            tessellator.addVertexWithUV(x + d7, y + d9, z - d23, d27, d29);
            tessellator.addVertexWithUV(x + d7, y + d9, z - d0, d27, d28);
            tessellator.addVertexWithUV(x + d11, y + d13, z - d0, d25, d28);
            tessellator.addVertexWithUV(x + d11, y + d13, z - d23, d25, d29);

            tessellator.addVertexWithUV(x + d19, y + d21, z - d23, d27, d29);
            tessellator.addVertexWithUV(x + d19, y + d21, z - d0, d27, d28);
            tessellator.addVertexWithUV(x + d15, y + d17, z - d0, d25, d28);
            tessellator.addVertexWithUV(x + d15, y + d17, z - d23, d25, d29);

            tessellator.addVertexWithUV(x + d11, y + d13, z - d23, d27, d29);
            tessellator.addVertexWithUV(x + d11, y + d13, z - d0, d27, d28);
            tessellator.addVertexWithUV(x + d19, y + d21, z - d0, d25, d28);
            tessellator.addVertexWithUV(x + d19, y + d21, z - d23, d25, d29);

            tessellator.addVertexWithUV(x + d15, y + d17, z - d23, d27, d29);
            tessellator.addVertexWithUV(x + d15, y + d17, z - d0, d27, d28);
            tessellator.addVertexWithUV(x + d7, y + d9, z - d0, d25, d28);
            tessellator.addVertexWithUV(x + d7, y + d9, z - d23, d25, d29);

            tessellator.draw();

            GL11.glEnable(GL11.GL_BLEND);
            OpenGlHelper.glBlendFunc(770, 771, 1, 0);
            GL11.glDepthMask(false);

            tessellator.startDrawingQuads();
            tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32);

            tessellator.addVertexWithUV(x + d30, y + d4, z - d18, d22, d26);
            tessellator.addVertexWithUV(x + d30, y + d4, z - d0, d22, d24);
            tessellator.addVertexWithUV(x + d6, y + d8, z - d0, d20, d24);
            tessellator.addVertexWithUV(x + d6, y + d8, z - d18, d20, d26);

            tessellator.addVertexWithUV(x + d14, y + d16, z - d18, d22, d26);
            tessellator.addVertexWithUV(x + d14, y + d16, z - d0, d22, d24);
            tessellator.addVertexWithUV(x + d10, y + d12, z - d0, d20, d24);
            tessellator.addVertexWithUV(x + d10, y + d12, z - d18, d20, d26);

            tessellator.addVertexWithUV(x + d6, y + d8, z - d18, d22, d26);
            tessellator.addVertexWithUV(x + d6, y + d8, z - d0, d22, d24);
            tessellator.addVertexWithUV(x + d14, y + d16, z - d0, d20, d24);
            tessellator.addVertexWithUV(x + d14, y + d16, z - d18, d20, d26);

            tessellator.addVertexWithUV(x + d10, y + d12, z - d18, d22, d26);
            tessellator.addVertexWithUV(x + d10, y + d12, z - d0, d22, d24);
            tessellator.addVertexWithUV(x + d30, y + d4, z - d0, d20, d24);
            tessellator.addVertexWithUV(x + d30, y + d4, z - d18, d20, d26);
        }
        if (direction == 3) // West /** -X */
        {
            d23 = (double) (distance * f1);
            d29 = (double) (distance * f1) * (0.5D / d5) + d28;
            d18 = (double) (distance * f1);
            d26 = (double) (distance * f1) + d24;
            x = x + 0.5D;

            tessellator.addVertexWithUV(x - d23, y + d7, z + d9, d27, d29);
            tessellator.addVertexWithUV(x - d0, y + d7, z + d9, d27, d28);
            tessellator.addVertexWithUV(x - d0, y + d11, z + d13, d25, d28);
            tessellator.addVertexWithUV(x - d23, y + d11, z + d13, d25, d29);

            tessellator.addVertexWithUV(x - d23, y + d19, z + d21, d27, d29);
            tessellator.addVertexWithUV(x - d0, y + d19, z + d21, d27, d28);
            tessellator.addVertexWithUV(x - d0, y + d15, z + d17, d25, d28);
            tessellator.addVertexWithUV(x - d23, y + d15, z + d17, d25, d29);

            tessellator.addVertexWithUV(x - d23, y + d11, z + d13, d27, d29);
            tessellator.addVertexWithUV(x - d0, y + d11, z + d13, d27, d28);
            tessellator.addVertexWithUV(x - d0, y + d19, z + d21, d25, d28);
            tessellator.addVertexWithUV(x - d23, y + d19, z + d21, d25, d29);

            tessellator.addVertexWithUV(x - d23, y + d15, z + d17, d27, d29);
            tessellator.addVertexWithUV(x - d0, y + d15, z + d17, d27, d28);
            tessellator.addVertexWithUV(x - d0, y + d7, z + d9, d25, d28);
            tessellator.addVertexWithUV(x - d23, y + d7, z + d9, d25, d29);

            tessellator.draw();

            GL11.glEnable(GL11.GL_BLEND);
            OpenGlHelper.glBlendFunc(770, 771, 1, 0);
            GL11.glDepthMask(false);

            tessellator.startDrawingQuads();
            tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32);

            tessellator.addVertexWithUV(x - d18, y + d30, z + d4, d22, d26);
            tessellator.addVertexWithUV(x - d0, y + d30, z + d4, d22, d24);
            tessellator.addVertexWithUV(x - d0, y + d6, z + d8, d20, d24);
            tessellator.addVertexWithUV(x - d18, y + d6, z + d8, d20, d26);

            tessellator.addVertexWithUV(x - d18, y + d14, z + d16, d22, d26);
            tessellator.addVertexWithUV(x - d0, y + d14, z + d16, d22, d24);
            tessellator.addVertexWithUV(x - d0, y + d10, z + d12, d20, d24);
            tessellator.addVertexWithUV(x - d18, y + d10, z + d12, d20, d26);

            tessellator.addVertexWithUV(x - d18, y + d6, z + d8, d22, d26);
            tessellator.addVertexWithUV(x - d0, y + d6, z + d8, d22, d24);
            tessellator.addVertexWithUV(x - d0, y + d14, z + d16, d20, d24);
            tessellator.addVertexWithUV(x - d18, y + d14, z + d16, d20, d26);

            tessellator.addVertexWithUV(x - d18, y + d10, z + d12, d22, d26);
            tessellator.addVertexWithUV(x - d0, y + d10, z + d12, d22, d24);
            tessellator.addVertexWithUV(x - d0, y + d30, z + d4, d20, d24);
            tessellator.addVertexWithUV(x - d18, y + d30, z + d4, d20, d26);
        }
        if (direction == 5) // East /** +X */
        {
            d23 = (double) (distance * f1);
            d29 = (double) (distance * f1) * (0.5D / d5) + d28;
            d18 = (double) (distance * f1);
            d26 = (double) (distance * f1) + d24;
            x = x + 0.5D;

            tessellator.addVertexWithUV(x + d23, y + d7, z + d9, d27, d29);
            tessellator.addVertexWithUV(x + d0, y + d7, z + d9, d27, d28);
            tessellator.addVertexWithUV(x + d0, y + d11, z + d13, d25, d28);
            tessellator.addVertexWithUV(x + d23, y + d11, z + d13, d25, d29);

            tessellator.addVertexWithUV(x + d23, y + d19, z + d21, d27, d29);
            tessellator.addVertexWithUV(x + d0, y + d19, z + d21, d27, d28);
            tessellator.addVertexWithUV(x + d0, y + d15, z + d17, d25, d28);
            tessellator.addVertexWithUV(x + d23, y + d15, z + d17, d25, d29);

            tessellator.addVertexWithUV(x + d23, y + d11, z + d13, d27, d29);
            tessellator.addVertexWithUV(x + d0, y + d11, z + d13, d27, d28);
            tessellator.addVertexWithUV(x + d0, y + d19, z + d21, d25, d28);
            tessellator.addVertexWithUV(x + d23, y + d19, z + d21, d25, d29);

            tessellator.addVertexWithUV(x + d23, y + d15, z + d17, d27, d29);
            tessellator.addVertexWithUV(x + d0, y + d15, z + d17, d27, d28);
            tessellator.addVertexWithUV(x + d0, y + d7, z + d9, d25, d28);
            tessellator.addVertexWithUV(x + d23, y + d7, z + d9, d25, d29);

            tessellator.draw();

            GL11.glEnable(GL11.GL_BLEND);
            OpenGlHelper.glBlendFunc(770, 771, 1, 0);
            GL11.glDepthMask(false);

            tessellator.startDrawingQuads();
            tessellator.setColorRGBA(rgb[0], rgb[1], rgb[2], 32);

            tessellator.addVertexWithUV(x + d18, y + d30, z + d4, d22, d26);
            tessellator.addVertexWithUV(x + d0, y + d30, z + d4, d22, d24);
            tessellator.addVertexWithUV(x + d0, y + d6, z + d8, d20, d24);
            tessellator.addVertexWithUV(x + d18, y + d6, z + d8, d20, d26);

            tessellator.addVertexWithUV(x + d18, y + d14, z + d16, d22, d26);
            tessellator.addVertexWithUV(x + d0, y + d14, z + d16, d22, d24);
            tessellator.addVertexWithUV(x + d0, y + d10, z + d12, d20, d24);
            tessellator.addVertexWithUV(x + d18, y + d10, z + d12, d20, d26);

            tessellator.addVertexWithUV(x + d18, y + d6, z + d8, d22, d26);
            tessellator.addVertexWithUV(x + d0, y + d6, z + d8, d22, d24);
            tessellator.addVertexWithUV(x + d0, y + d14, z + d16, d20, d24);
            tessellator.addVertexWithUV(x + d18, y + d14, z + d16, d20, d26);

            tessellator.addVertexWithUV(x + d18, y + d10, z + d12, d22, d26);
            tessellator.addVertexWithUV(x + d0, y + d10, z + d12, d22, d24);
            tessellator.addVertexWithUV(x + d0, y + d30, z + d4, d20, d24);
            tessellator.addVertexWithUV(x + d18, y + d30, z + d4, d20, d26);
        }
        tessellator.draw();

        GL11.glEnable(GL11.GL_LIGHTING);
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glDepthMask(true);
    }
    GL11.glAlphaFunc(GL11.GL_GREATER, 0.5F);
}

From source file:fr.def.iss.vd2.lib_v3d.element.V3DSprite.java

License:Open Source License

@Override
protected void doDisplay(V3DCamera camera) {

    if (!enableColor) {
        GL11.glPushAttrib(GL11.GL_CURRENT_BIT);
        GL11.glColor4f(1, 1, 1, opacity);
    }/*  www . j  av  a2  s  .c om*/

    GL11.glEnable(GL11.GL_TEXTURE_2D);

    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE);

    GL11.glAlphaFunc(GL11.GL_GREATER, 0.1f);
    GL11.glEnable(GL11.GL_ALPHA_TEST);

    if (disableRotation) {
        camera.disableRotation();
    }

    float w = 0.5f * size.x * image.getWidth();
    float h = 0.5f * size.y * image.getHeight();

    GL11.glBindTexture(GL11.GL_TEXTURE_2D, texture.getID());
    GL11.glBegin(GL11.GL_QUADS);
    GL11.glTexCoord2f(0.0f, 0.0f);
    GL11.glVertex3f(-w, -h, 0.0f);
    GL11.glTexCoord2f(1.0f, 0.0f);
    GL11.glVertex3f(w, -h, 0.0f);
    GL11.glTexCoord2f(1.0f, 1.0f);
    GL11.glVertex3f(w, h, 0.0f);
    GL11.glTexCoord2f(0.0f, 1.0f);
    GL11.glVertex3f(-w, h, 0.0f);
    GL11.glEnd();

    if (disableRotation) {
        camera.enableRotation();
    }

    GL11.glDisable(GL11.GL_ALPHA_TEST);
    GL11.glDisable(GL11.GL_TEXTURE_2D);

    if (!enableColor) {
        GL11.glPopAttrib();
    }
}

From source file:fr.def.iss.vd2.lib_v3d.v3draw.V3DrawReader.java

License:Open Source License

private void enableTexture() {
    int textureIndex = buffer.getInt();

    GL11.glEnable(GL11.GL_TEXTURE_2D);/*from   w w  w  . ja  va  2  s  . c om*/

    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glTexEnvf(GL11.GL_TEXTURE_ENV, GL11.GL_TEXTURE_ENV_MODE, GL11.GL_MODULATE);

    GL11.glAlphaFunc(GL11.GL_GREATER, 0.1f);
    GL11.glEnable(GL11.GL_ALPHA_TEST);

    //        GL11.glBindTexture(GL11.GL_TEXTURE_2D, textureList.get(textureIndex).getID());
}

From source file:fr.mcnanotech.kevin_68.nanotechmod.city.client.renderer.tileentity.TileEntitySpotLightRender.java

License:Creative Commons License

public void renderTileEntitySpotLightAt(TileEntitySpotLight tileentity, double x, double y, double z,
        float tick) {
    float f1 = tileentity.isActive();
    GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
    if (f1 > 0.0F) {
        Tessellator tessellator = Tessellator.instance;
        this.bindTexture(texture);
        GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, 10497.0F);
        GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, 10497.0F);
        GL11.glDisable(GL11.GL_LIGHTING);
        GL11.glDisable(GL11.GL_CULL_FACE);
        GL11.glDisable(GL11.GL_BLEND);/*from  w w w .ja  v  a 2  s.c  o  m*/
        GL11.glDepthMask(true);
        OpenGlHelper.glBlendFunc(770, 1, 1, 0);
        tessellator.startDrawingQuads();
        tessellator.setColorRGBA(tileentity.get(TileEntitySpotLight.RED),
                tileentity.get(TileEntitySpotLight.GREEN), tileentity.get(TileEntitySpotLight.BLUE), 32);
        float f2 = (float) tileentity.getWorldObj().getTotalWorldTime() + tick;
        float f3 = -f2 * 0.2F - (float) MathHelper.floor_float(-f2 * 0.1F);
        byte b0 = 1;
        double d4 = (double) b0 * 0.2D;// taille
        double d3 = (double) f2 * 0.025D * (1.0D - (double) (b0 & 1) * 2.5D);

        double angle1Deg = tileentity.get(TileEntitySpotLight.ANGLE1);
        double angle2Deg = tileentity.get(TileEntitySpotLight.ANGLE2);
        double a1 = Math.toRadians(angle1Deg);
        double a2 = tileentity.get(TileEntitySpotLight.AUTOROTATE) == 0
                ? ((d3 * (tileentity.get(TileEntitySpotLight.ROTATIONSPEED) / 10))
                        * (tileentity.get(TileEntitySpotLight.REVERSEROTATION) == 0 ? -1 : 1))
                : Math.toRadians(angle2Deg);

        double xo = 0.5D;
        double yo = 0.5D;
        double zo = 0.5D;
        double xm = xo + (256 * Math.cos(a2) * Math.sin(a1));
        double ym = yo + (256 * Math.cos(a1));
        double zm = zo + (256 * Math.sin(a2) * Math.sin(a1));

        double xa = xo + (0.2D * Math.cos(a2 + (Math.PI / 4D)) * Math.sin(a1 + (Math.PI / 4D)));
        double ya = xo + (0.2D * Math.cos(a1 + (Math.PI / 4D)));
        double za = zo + (0.2D * Math.sin(a2 + (Math.PI / 4D)) * Math.sin(a1 + (Math.PI / 4D)));

        double xA = xa + xm - xo;
        double yA = ya + ym - yo;
        double zA = za + zm - zo;

        double xb = xo + (0.2D * Math.cos(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (3 * Math.PI / 4D)));
        double yb = xo + (0.2D * Math.cos(a1 + (3 * Math.PI / 4D)));
        double zb = zo + (0.2D * Math.sin(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (3 * Math.PI / 4D)));

        double xB = xb + xm - xo;
        double yB = yb + ym - yo;
        double zB = zb + zm - zo;

        double xc = xo + (0.2D * Math.cos(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (5 * Math.PI / 4D)));
        double yc = xo + (0.2D * Math.cos(a1 + (5 * Math.PI / 4D)));
        double zc = zo + (0.2D * Math.sin(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (5 * Math.PI / 4D)));

        double xC = xc + xm - xo;
        double yC = yc + ym - yo;
        double zC = zc + zm - zo;

        double xd = xo + (0.2D * Math.cos(a2 + (Math.PI / 4D)) * Math.sin(a1 + (7 * Math.PI / 4D)));
        double yd = xo + (0.2D * Math.cos(a1 + (7 * Math.PI / 4D)));
        double zd = zo + (0.2D * Math.sin(a2 + (Math.PI / 4D)) * Math.sin(a1 + (7 * Math.PI / 4D)));

        double xD = xd + xm - xo;
        double yD = yd + ym - yo;
        double zD = zd + zm - zo;

        double t0 = 0.0D;
        double t1 = 1.0D;
        double t2 = (double) (-1.0F + f3);
        double t3 = (double) (256.0F * f1) * (0.5D / d4) + t2;

        tessellator.addVertexWithUV(x + xa, y + ya, z + za, t1, t3);
        tessellator.addVertexWithUV(x + xA, y + yA, z + zA, t1, t2);
        tessellator.addVertexWithUV(x + xB, y + yB, z + zB, t0, t2);
        tessellator.addVertexWithUV(x + xb, y + yb, z + zb, t0, t3);

        tessellator.addVertexWithUV(x + xa, y + ya, z + za, t1, t3);
        tessellator.addVertexWithUV(x + xA, y + yA, z + zA, t1, t2);
        tessellator.addVertexWithUV(x + xC, y + yC, z + zC, t0, t2);
        tessellator.addVertexWithUV(x + xc, y + yc, z + zc, t0, t3);

        tessellator.addVertexWithUV(x + xc, y + yc, z + zc, t1, t3);
        tessellator.addVertexWithUV(x + xC, y + yC, z + zC, t1, t2);
        tessellator.addVertexWithUV(x + xD, y + yD, z + zD, t0, t2);
        tessellator.addVertexWithUV(x + xd, y + yd, z + zd, t0, t3);

        tessellator.addVertexWithUV(x + xb, y + yb, z + zb, t1, t3);
        tessellator.addVertexWithUV(x + xB, y + yB, z + zB, t1, t2);
        tessellator.addVertexWithUV(x + xD, y + yD, z + zD, t0, t2);
        tessellator.addVertexWithUV(x + xd, y + yd, z + zd, t0, t3);

        tessellator.addVertexWithUV(x + xb, y + yb, z + zb, t1, t3);
        tessellator.addVertexWithUV(x + xB, y + yB, z + zB, t1, t2);
        tessellator.addVertexWithUV(x + xC, y + yC, z + zC, t0, t2);
        tessellator.addVertexWithUV(x + xc, y + yc, z + zc, t0, t3);

        tessellator.addVertexWithUV(x + xa, y + ya, z + za, t1, t3);
        tessellator.addVertexWithUV(x + xA, y + yA, z + zA, t1, t2);
        tessellator.addVertexWithUV(x + xD, y + yD, z + zD, t0, t2);
        tessellator.addVertexWithUV(x + xd, y + yd, z + zd, t0, t3);
        tessellator.draw();

        GL11.glEnable(GL11.GL_BLEND);
        OpenGlHelper.glBlendFunc(770, 771, 1, 0);
        GL11.glDepthMask(false);

        double xe = xo + (0.5D * Math.cos(a2 + (Math.PI / 4D)) * Math.sin(a1 + (Math.PI / 4D)));
        double ye = xo + (0.5D * Math.cos(a1 + (Math.PI / 4D)));
        double ze = zo + (0.5D * Math.sin(a2 + (Math.PI / 4D)) * Math.sin(a1 + (Math.PI / 4D)));

        double xE = xe + xm - xo;
        double yE = ye + ym - yo;
        double zE = ze + zm - zo;

        double xf = xo + (0.5D * Math.cos(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (3 * Math.PI / 4D)));
        double yf = xo + (0.5D * Math.cos(a1 + (3 * Math.PI / 4D)));
        double zf = zo + (0.5D * Math.sin(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (3 * Math.PI / 4D)));

        double xF = xf + xm - xo;
        double yF = yf + ym - yo;
        double zF = zf + zm - zo;

        double xg = xo + (0.5D * Math.cos(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (5 * Math.PI / 4D)));
        double yg = xo + (0.5D * Math.cos(a1 + (5 * Math.PI / 4D)));
        double zg = zo + (0.5D * Math.sin(a2 + (3 * Math.PI / 4D)) * Math.sin(a1 + (5 * Math.PI / 4D)));

        double xG = xg + xm - xo;
        double yG = yg + ym - yo;
        double zG = zg + zm - zo;

        double xh = xo + (0.5D * Math.cos(a2 + (Math.PI / 4D)) * Math.sin(a1 + (7 * Math.PI / 4D)));
        double yh = xo + (0.5D * Math.cos(a1 + (7 * Math.PI / 4D)));
        double zh = zo + (0.5D * Math.sin(a2 + (Math.PI / 4D)) * Math.sin(a1 + (7 * Math.PI / 4D)));

        double xH = xh + xm - xo;
        double yH = yh + ym - yo;
        double zH = zh + zm - zo;

        if (tileentity.get(TileEntitySpotLight.SECONDARYLAZER) == 0) {
            tessellator.startDrawingQuads();
            tessellator.setColorRGBA(tileentity.get(TileEntitySpotLight.DARKRED),
                    tileentity.get(TileEntitySpotLight.DARKGREEN), tileentity.get(TileEntitySpotLight.DARKBLUE),
                    32);

            tessellator.addVertexWithUV(x + xe, y + ye, z + ze, t1, t3);
            tessellator.addVertexWithUV(x + xE, y + yE, z + zE, t1, t2);
            tessellator.addVertexWithUV(x + xF, y + yF, z + zF, t0, t2);
            tessellator.addVertexWithUV(x + xf, y + yf, z + zf, t0, t3);

            tessellator.addVertexWithUV(x + xe, y + ye, z + ze, t1, t3);
            tessellator.addVertexWithUV(x + xE, y + yE, z + zE, t1, t2);
            tessellator.addVertexWithUV(x + xG, y + yG, z + zG, t0, t2);
            tessellator.addVertexWithUV(x + xg, y + yg, z + zg, t0, t3);

            tessellator.addVertexWithUV(x + xg, y + yg, z + zg, t1, t3);
            tessellator.addVertexWithUV(x + xG, y + yG, z + zG, t1, t2);
            tessellator.addVertexWithUV(x + xH, y + yH, z + zH, t0, t2);
            tessellator.addVertexWithUV(x + xh, y + yh, z + zh, t0, t3);

            tessellator.addVertexWithUV(x + xf, y + yf, z + zf, t1, t3);
            tessellator.addVertexWithUV(x + xF, y + yF, z + zF, t1, t2);
            tessellator.addVertexWithUV(x + xH, y + yH, z + zH, t0, t2);
            tessellator.addVertexWithUV(x + xh, y + yh, z + zh, t0, t3);

            tessellator.addVertexWithUV(x + xf, y + yf, z + zf, t1, t3);
            tessellator.addVertexWithUV(x + xF, y + yF, z + zF, t1, t2);
            tessellator.addVertexWithUV(x + xG, y + yG, z + zG, t0, t2);
            tessellator.addVertexWithUV(x + xg, y + yg, z + zg, t0, t3);

            tessellator.addVertexWithUV(x + xe, y + ya, z + za, t1, t3);
            tessellator.addVertexWithUV(x + xE, y + yE, z + zE, t1, t2);
            tessellator.addVertexWithUV(x + xD, y + yD, z + zD, t0, t2);
            tessellator.addVertexWithUV(x + xd, y + yd, z + zd, t0, t3);
            tessellator.draw();
        }

        GL11.glEnable(GL11.GL_LIGHTING);
        GL11.glEnable(GL11.GL_TEXTURE_2D);
        GL11.glDepthMask(true);
    }
    GL11.glAlphaFunc(GL11.GL_GREATER, 0.5F);
}

From source file:go.graphics.swing.opengl.LWJGLDrawContext.java

License:Open Source License

/**
 * Sets the texture parameters, assuming that the texture was just created and is bound.
 */// ww  w  . ja v a 2  s  . com
private void setTextureParameters() {
    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_MIN_FILTER, GL11.GL_NEAREST);
    GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);

    GL11.glAlphaFunc(GL11.GL_GREATER, 0.5f); // prevent writing of transparent pixels to z buffer
}

From source file:hellfirepvp.astralsorcery.client.gui.journal.GuiProgressionClusterRenderer.java

License:Open Source License

private void drawConnection(double originX, double originY, double targetX, double targetY, float zLevel) {
    GL11.glPushMatrix();/*from   ww  w  .  j  a va  2s .c o  m*/
    GL11.glAlphaFunc(GL11.GL_GREATER, 0.003921569F);
    GL11.glDisable(GL11.GL_TEXTURE_2D);
    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glLineWidth(3.5F);
    GL11.glEnable(GL11.GL_LINE_SMOOTH);
    GL11.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_NICEST);

    long clientTicks = ClientScheduler.getClientTick();

    Vector3 origin = new Vector3(originX, originY, 0);
    Vector3 line = origin.vectorFromHereTo(targetX, targetY, 0);
    int segments = (int) Math.ceil(line.length() / 1); //1 = max line segment length
    int activeSegment = (int) (clientTicks % segments);
    Vector3 segmentIter = line.divide(segments);
    for (int i = segments; i >= 0; i--) {
        double lx = origin.getX();
        double ly = origin.getY();
        origin.add(segmentIter);

        float brightness = 0.4F;
        brightness += (0.6F * evaluateBrightness(i, activeSegment));

        drawLinePart(lx, ly, origin.getX(), origin.getY(), zLevel, brightness);
    }

    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glDisable(GL11.GL_LINE_SMOOTH);
    GL11.glLineWidth(2.0F);
    GL11.glDisable(GL11.GL_BLEND);
    GL11.glEnable(GL11.GL_TEXTURE_2D);
    GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F);
    GL11.glPopMatrix();
}

From source file:jake2.desktop.LWJGLAdapter.java

License:Open Source License

@Override
public void glAlphaFunc(int i, float j) {
    GL11.glAlphaFunc(i, j);
}