Example usage for org.lwjgl.opengl GL14 glBlendColor

List of usage examples for org.lwjgl.opengl GL14 glBlendColor

Introduction

In this page you can find the example usage for org.lwjgl.opengl GL14 glBlendColor.

Prototype

public static void glBlendColor(@NativeType("GLfloat") float red, @NativeType("GLfloat") float green,
        @NativeType("GLfloat") float blue, @NativeType("GLfloat") float alpha) 

Source Link

Document

Specifies the constant color Cc to be used in blending.

Usage

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

License:Apache License

public void glBlendColor(float red, float green, float blue, float alpha) {
    GL14.glBlendColor(red, green, blue, alpha);
}

From source file:de.ellpeck.actuallyadditions.mod.particle.ParticleLaserItem.java

@Override
public void renderParticle(BufferBuilder buffer, Entity entityIn, float partialTicks, float rotationX,
        float rotationZ, float rotationYZ, float rotationXY, float rotationXZ) {
    GlStateManager.pushMatrix();/* w  ww. j  av  a2s. co  m*/
    RenderHelper.enableStandardItemLighting();

    GlStateManager.translate(this.posX - TileEntityRendererDispatcher.staticPlayerX,
            this.posY - TileEntityRendererDispatcher.staticPlayerY,
            this.posZ - TileEntityRendererDispatcher.staticPlayerZ);
    GlStateManager.scale(0.3F, 0.3F, 0.3F);

    double boop = Minecraft.getSystemTime() / 600D;
    GlStateManager.rotate((float) (boop * 40D % 360), 0, 1, 0);

    GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
    GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_CONSTANT_COLOR,
            GlStateManager.SourceFactor.ONE.factor, GlStateManager.DestFactor.ZERO.factor);

    float ageRatio = (float) this.particleAge / (float) this.particleMaxAge;
    float color = this.motionY < 0 ? 1F - ageRatio : ageRatio;
    GL14.glBlendColor(color, color, color, color);

    AssetUtil.renderItemWithoutScrewingWithColors(this.stack);

    RenderHelper.disableStandardItemLighting();
    GlStateManager.popMatrix();
}

From source file:de.sanandrew.mods.turretmod.client.event.RenderForcefieldHandler.java

License:Creative Commons License

@SubscribeEvent(priority = EventPriority.HIGH)
public void onRenderWorldLast(RenderWorldLastEvent event) {
    Minecraft mc = Minecraft.getMinecraft();
    Entity renderEntity = mc.getRenderViewEntity();
    if (renderEntity == null) {
        return;/*from  w  w w.  ja v a  2  s  .c o  m*/
    }

    final float partialTicks = event.getPartialTicks();
    double renderX = renderEntity.lastTickPosX + (renderEntity.posX - renderEntity.lastTickPosX) * partialTicks;
    double renderY = renderEntity.lastTickPosY + (renderEntity.posY - renderEntity.lastTickPosY) * partialTicks;
    double renderZ = renderEntity.lastTickPosZ + (renderEntity.posZ - renderEntity.lastTickPosZ) * partialTicks;

    List<ForcefieldCube> cubes = new ArrayList<>();

    int worldTicks = (int) (mc.world.getTotalWorldTime() % Integer.MAX_VALUE);

    Iterator<Map.Entry<Integer, Queue<IForcefieldProvider>>> it = this.fieldProviders.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry<Integer, Queue<IForcefieldProvider>> entry = it.next();
        Entity entity = mc.world.getEntityByID(entry.getKey());

        if (entity == null || entry.getValue().size() < 1) {
            it.remove();
            continue;
        }

        Iterator<IForcefieldProvider> itFF = entry.getValue().iterator();
        while (itFF.hasNext()) {
            IForcefieldProvider ffProvider = itFF.next();

            ColorObj color = new ColorObj(ffProvider.getShieldColor());

            double entityX = entity.lastTickPosX + (entity.posX - entity.lastTickPosX) * partialTicks;
            double entityY = entity.lastTickPosY + (entity.posY - entity.lastTickPosY) * partialTicks;
            double entityZ = entity.lastTickPosZ + (entity.posZ - entity.lastTickPosZ) * partialTicks;

            ForcefieldCube cube = new ForcefieldCube(
                    new Vec3d(entityX - renderX, entityY - renderY, entityZ - renderZ),
                    ffProvider.getShieldBoundingBox(), color);
            cube.fullRendered = ffProvider.renderFull();

            if (entity.isDead || !entity.isEntityAlive() || !ffProvider.isShieldActive()
                    || !mc.world.loadedEntityList.contains(entity)) {
                if (ffProvider.hasSmoothFadeOut()) {
                    this.fadeOutFields.add(cube);
                }
                itFF.remove();
            } else {
                if (TmrConfiguration.calcForcefieldIntf) {
                    for (ForcefieldCube intfCube : cubes) {
                        cube.interfere(intfCube, false);
                        intfCube.interfere(cube, true);
                    }
                }

                cubes.add(cube);
            }
        }
    }

    Iterator<ForcefieldCube> fadeOutIt = this.fadeOutFields.iterator();
    while (fadeOutIt.hasNext()) {
        ForcefieldCube shield = fadeOutIt.next();
        if (shield.boxColor.alpha() <= 0) {
            fadeOutIt.remove();
        } else {
            cubes.add(shield);

            shield.boxColor.setAlpha(shield.boxColor.alpha() - 3);
        }
    }

    Tessellator tess = Tessellator.getInstance();
    for (int pass = 1; pass <= 5; pass++) {
        float transformTexAmount = worldTicks % 400 + event.getPartialTicks();
        float texTranslateX = 0.0F;
        float texTranslateY = 0.0F;

        switch (pass) {
        case 1:
            texTranslateX = transformTexAmount * -0.01F;
            texTranslateY = transformTexAmount * 0.01F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P1.getResource());
            break;
        case 2:
            texTranslateX = transformTexAmount * 0.005F;
            texTranslateY = transformTexAmount * 0.005F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P2.getResource());
            break;
        case 3:
            texTranslateX = transformTexAmount * -0.005F;
            texTranslateY = transformTexAmount * 0.005F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P1.getResource());
            break;
        case 4:
            texTranslateX = transformTexAmount * 0.0025F;
            texTranslateY = transformTexAmount * 0.0025F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P2.getResource());
            break;
        case 5:
            texTranslateX = transformTexAmount * 0.00F;
            texTranslateY = transformTexAmount * 0.00F;
            mc.renderEngine.bindTexture(Resources.TURRET_FORCEFIELD_P3.getResource());
            break;
        }

        GlStateManager.matrixMode(GL11.GL_TEXTURE);
        GlStateManager.loadIdentity();
        GlStateManager.translate(texTranslateX, texTranslateY, 0.0F);
        GlStateManager.matrixMode(GL11.GL_MODELVIEW);

        GlStateManager.enableBlend();
        GlStateManager.blendFunc(GlStateManager.SourceFactor.CONSTANT_ALPHA,
                GlStateManager.DestFactor.ONE_MINUS_CONSTANT_ALPHA);

        for (ForcefieldCube cube : cubes) {
            tess.getBuffer().begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_COLOR);

            cube.draw(tess);

            GL14.glBlendColor(1.0f, 1.0f, 1.0f, cube.boxColor.fAlpha() * 0.5F);
            GlStateManager.depthMask(false);
            GlStateManager.disableCull();
            tess.draw();
            GlStateManager.enableCull();
            GlStateManager.depthMask(true);
            GL14.glBlendColor(1.0F, 1.0F, 1.0F, 1.0F);
        }

        GlStateManager.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA,
                GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA);
        GlStateManager.disableBlend();

        GlStateManager.matrixMode(GL11.GL_TEXTURE);
        GL11.glLoadIdentity();
        GlStateManager.matrixMode(GL11.GL_MODELVIEW);
    }
}

From source file:io.root.gfx.glutils.GL.java

License:Apache License

public static void glBlendColor(float red, float green, float blue, float alpha) {
    GL14.glBlendColor(red, green, blue, alpha);
}

From source file:jpcsp.graphics.RE.RenderingEngineLwjgl.java

License:Open Source License

@Override
public void setBlendColor(float[] color) {
    try {// w  w w  . j  a v  a 2s  .com
        GL14.glBlendColor(color[0], color[1], color[2], color[3]);
    } catch (IllegalStateException e) {
        log.warn("VideoEngine: " + e.getMessage());
    }
}

From source file:net.malisis.blocks.renderer.VanishingBlockRenderer.java

License:Open Source License

private void renderVanishingTileEntity() {
    tileEntity = TileEntityUtils.getTileEntity(VanishingTileEntity.class, world, pos);
    if (tileEntity == null)
        return;/*from w  w  w. j  ava 2s  . co  m*/

    //      if (!tileEntity.blockDrawn/* || (!tileEntity.isInTransition() && !tileEntity.isVibrating())*/)
    //      {
    //         if (!tileEntity.isPowered() && tileEntity.getCopiedTileEntity() != null)
    //         {
    //            clean();
    //            TileEntityRendererDispatcher.instance.renderTileEntity(tileEntity.getCopiedTileEntity(), partialTick, 0);
    //         }
    //         if (tileEntity.blockDrawn)
    //            return;
    //      }

    enableBlending();

    float fx = 0.0F;
    float fy = 0.0F;
    float fz = 0.0F;
    float scale = (float) (tileEntity.getDuration() - tileEntity.getTransitionTimer())
            / tileEntity.getDuration();
    boolean rendered = tileEntity.getCopiedState() != null;

    RenderParameters rp = new RenderParameters();
    rp.useBlockBounds.set(false);
    rp.interpolateUV.set(false);

    // randomize position for vibrations
    if (tileEntity.isVibrating()) {
        rp.alpha.set(200);
        fx = rand.nextFloat() * 0.05F;
        fy = rand.nextFloat() * 0.05F;
        fz = rand.nextFloat() * 0.05F;
        if (rand.nextBoolean())
            GL11.glTranslated(fx, fy, fz);
        else
            GL11.glRotatef(rand.nextInt(5), 1, 1, 1);
    } else if (tileEntity.isInTransition()) {
        int alpha = tileEntity.getCopiedState() != null ? 255 - (int) (scale * 255) : (int) (scale * 255);
        rp.alpha.set(alpha);
        cube.scale(scale - 0.001F);
    } else if (tileEntity.blockDrawn)
        return;

    if (tileEntity.getCopiedState() != null) {
        BlockRendererDispatcher blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher();
        wr.setVertexFormat(DefaultVertexFormats.BLOCK);
        try {
            boolean smbr = MalisisBlocksSettings.simpleMixedBlockRendering.get();
            MalisisBlocksSettings.simpleMixedBlockRendering.set(true);

            BlockPos translate = BlockPosUtils.chunkPosition(pos);
            //GlStateManager.pushMatrix();
            GlStateManager.translate(0.5F, 0.5F, 0.5F);
            GlStateManager.scale(scale, scale, scale);
            if (tileEntity.getCopiedState().getBlock().getRenderType() == MalisisCore.malisisRenderType)
                GlStateManager.translate(-translate.getX(), -translate.getY(), -translate.getZ());
            else
                GlStateManager.translate(-pos.getX(), -pos.getY(), -pos.getZ());
            GlStateManager.translate(-0.5F, -0.5F, -0.5F);

            GL11.glBlendFunc(GL11.GL_CONSTANT_ALPHA, GL11.GL_ONE_MINUS_CONSTANT_ALPHA);
            //            GL11.glAlphaFunc(GL11.GL_GREATER, 1F);
            //GL14.glBlendColor(0, 0, 0, 1 - scale);
            //TODO: render underlying model with vanishing block texture
            //            renderBlocks.overrideBlockTexture = block.getIcon(blockMetadata, 0);
            //            rendered = renderBlocks.renderBlockByRenderType(tileEntity.copiedBlock, x, y, z);
            //            renderBlocks.overrideBlockTexture = null;
            //            next();

            GL14.glBlendColor(0, 0, 0, scale);
            for (EnumWorldBlockLayer layer : EnumWorldBlockLayer.values()) {
                if (!tileEntity.getCopiedState().getBlock().canRenderInLayer(layer))
                    continue;

                ForgeHooksClient.setRenderLayer(layer);
                if (layer == EnumWorldBlockLayer.TRANSLUCENT)
                    GlStateManager.tryBlendFuncSeparate(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA,
                            GL11.GL_ONE, GL11.GL_ZERO);
                if (tileEntity.getCopiedState().getBlock().getRenderType() == MalisisCore.malisisRenderType)
                    blockRenderer.renderBlock(tileEntity.getCopiedState(), pos, ProxyAccess.get(world), wr);
                else {
                    IBakedModel model = blockRenderer.getModelFromBlockState(tileEntity.getCopiedState(),
                            ProxyAccess.get(world), pos);
                    rendered |= blockRenderer.getBlockModelRenderer().renderModel(ProxyAccess.get(world), model,
                            tileEntity.getCopiedState(), pos, wr, false);
                }

                next();
            }

            if (!rendered)
                drawShape(cube, rp);

            //GlStateManager.popMatrix();

            if (tileEntity.getCopiedTileEntity() != null) {
                clean();
                TileEntityRendererDispatcher.instance.renderTileEntity(tileEntity.getCopiedTileEntity(),
                        partialTick, 0);
            }

            MalisisBlocksSettings.simpleMixedBlockRendering.set(smbr);

        } catch (Exception e) {
            drawShape(cube, rp);
        }

    } else
        drawShape(cube, rp);
}

From source file:net.malisis.core.client.gui.component.UIComponent.java

License:Open Source License

/**
 * Draws this {@link UIComponent} Called by {@link #parent} component.<br>
 * Will set the size of {@link #shape} according to the size of this <code>UIComponent</code><br>
 * Rendering is surrounded by glPushAttrib(GL_ALL_ATTRIB_BITS) so no state should bleed between components. Also, a draw() is triggered
 * between background and foreground./*from ww w  . j  a v  a  2s  . c om*/
 *
 * @param renderer the renderer
 * @param mouseX the mouse x
 * @param mouseY the mouse y
 * @param partialTick the partial tick
 */
public void draw(GuiRenderer renderer, int mouseX, int mouseY, float partialTick) {
    if (!isVisible())
        return;

    if (shape != null) {
        shape.resetState();
        shape.setSize(getWidth(), getHeight());
    }
    if (rp != null)
        rp.reset();

    GL11.glPushAttrib(GL11.GL_ALL_ATTRIB_BITS);
    if (getAlpha() < 255) {
        GL11.glBlendFunc(GL11.GL_CONSTANT_ALPHA, GL11.GL_ONE_MINUS_CONSTANT_ALPHA);
        GL14.glBlendColor(1, 1, 1, (float) getAlpha() / 255);
    }

    //draw background
    renderer.currentComponent = this;
    drawBackground(renderer, mouseX, mouseY, partialTick);
    renderer.next();

    //draw foreground
    renderer.currentComponent = this;

    ClipArea area = this instanceof IClipable ? ((IClipable) this).getClipArea() : null;
    if (area != null)
        renderer.startClipping(area);

    //GL11.glColor4f(1, 1, 1, 0.5F);

    drawForeground(renderer, mouseX, mouseY, partialTick);

    if (area != null)
        renderer.endClipping(area);

    renderer.next();

    for (IControlComponent c : controlComponents)
        c.draw(renderer, mouseX, mouseY, partialTick);

    GL11.glPopAttrib();
}

From source file:net.malisis.demo.lavapool.LavaPoolRenderer.java

License:Open Source License

@Override
public void render() {
    int a = 155;/*from w w w  .j  a  va  2  s  .  c  o  m*/
    enableBlending();
    tileEntity = (LavaPoolTileEntity) super.tileEntity;
    block = (LavaPoolBlock) super.block;
    if (tileEntity.startAnim) {
        ar.setStartTime();
        tileEntity.startAnim = false;
        rp.alpha.set(a);
        renderBlocks = new RenderBlocks(LavaPoolDemo.lavaPool.multiBlock);
    }

    AlphaTransform at = new AlphaTransform(a, 0).forTicks(40, 40);
    ar.animate(rp, at);
    rp.interpolateUV.set(false);

    for (BlockState state : block.multiBlock) {
        if (!state.matchesWorld(world)) {
            GL11.glPushMatrix();
            GL11.glTranslated(0.5F, 0.5F, 0.5F);
            GL11.glTranslated(-x - 0.5F, -y - 0.5F, -z - 0.5F);

            GL11.glBlendFunc(GL11.GL_CONSTANT_ALPHA, GL11.GL_ONE_MINUS_CONSTANT_ALPHA);
            GL14.glBlendColor(0, 0, 0, rp.alpha.get() / 255F);
            renderBlocks.renderBlockByRenderType(state.getBlock(), state.getX(), state.getY(), state.getZ());

            GL11.glPopMatrix();
        }
    }
}

From source file:net.malisis.doors.renderer.VanishingBlockRenderer.java

License:Open Source License

private void renderVanishingTileEntity() {
    VanishingTileEntity te = (VanishingTileEntity) this.tileEntity;

    if (!te.inTransition && !te.vibrating) {
        if (!te.powered && te.copiedTileEntity != null) {
            clean();//from ww  w  .  ja  v  a2  s. c o  m
            TileEntityRendererDispatcher.instance.renderTileEntity(te.copiedTileEntity, partialTick);
        }
        return;
    }

    GL11.glEnable(GL11.GL_BLEND);
    GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
    GL11.glAlphaFunc(GL11.GL_GREATER, 0);

    float fx = 0.0F;
    float fy = 0.0F;
    float fz = 0.0F;
    float scale = (float) (te.getDuration() - te.transitionTimer) / (float) te.getDuration();
    boolean rendered = te.copiedBlock != null;

    RenderParameters rp = new RenderParameters();
    rp.useBlockBounds.set(false);
    rp.interpolateUV.set(false);

    Shape shape = ShapePreset.Cube();
    // randomize position for vibrations
    if (!te.inTransition && !te.powered) {
        rp.alpha.set(200);
        fx = rand.nextFloat() * 0.05F;
        fy = rand.nextFloat() * 0.05F;
        fz = rand.nextFloat() * 0.05F;
        if (rand.nextBoolean())
            GL11.glTranslated(fx, fy, fz);
        else
            GL11.glRotatef(rand.nextInt(5), 1, 1, 1);
    } else {
        int alpha = te.copiedBlock != null ? 255 - (int) (scale * 255) : (int) (scale * 255);
        rp.alpha.set(alpha);
        shape.scale(scale - 0.001F);
    }

    if (te.copiedBlock != null) {
        RenderBlocks renderBlocks = new RenderBlocks(ProxyAccess.get(world));
        renderBlocks.renderAllFaces = true;
        try {
            boolean smbr = MalisisDoorsSettings.simpleMixedBlockRendering.get();
            MalisisDoorsSettings.simpleMixedBlockRendering.set(true);

            GL11.glPushMatrix();
            GL11.glTranslated(0.5F, 0.5F, 0.5F);
            GL11.glScalef(scale, scale, scale);
            GL11.glTranslated(-x - 0.5F, -y - 0.5F, -z - 0.5F);

            GL11.glBlendFunc(GL11.GL_CONSTANT_ALPHA, GL11.GL_ONE_MINUS_CONSTANT_ALPHA);
            GL14.glBlendColor(0, 0, 0, 1 - scale);
            renderBlocks.overrideBlockTexture = block.getIcon(blockMetadata, 0);
            rendered = renderBlocks.renderBlockByRenderType(te.copiedBlock, x, y, z);
            renderBlocks.overrideBlockTexture = null;
            next();

            if (te.copiedBlock.canRenderInPass(0)) {
                GL14.glBlendColor(0, 0, 0, scale);
                rendered |= renderBlocks.renderBlockByRenderType(te.copiedBlock, x, y, z);
                next();
            }
            if (te.copiedBlock.canRenderInPass(1)) {
                GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
                rendered |= renderBlocks.renderBlockByRenderType(te.copiedBlock, x, y, z);
                next();
            }

            if (!rendered)
                drawShape(shape, rp);

            GL11.glPopMatrix();

            if (te.copiedTileEntity != null) {
                clean();
                TileEntityRendererDispatcher.instance.renderTileEntity(te.copiedTileEntity, partialTick);
            }

            MalisisDoorsSettings.simpleMixedBlockRendering.set(smbr);

        } catch (Exception e) {
            drawShape(shape, rp);
        }

    } else
        drawShape(shape, rp);
}

From source file:org.oscim.gdx.LwjglGL20.java

License:Apache License

public void blendColor(float red, float green, float blue, float alpha) {
    GL14.glBlendColor(red, green, blue, alpha);
}