Example usage for com.badlogic.gdx.graphics GL20 GL_BLEND

List of usage examples for com.badlogic.gdx.graphics GL20 GL_BLEND

Introduction

In this page you can find the example usage for com.badlogic.gdx.graphics GL20 GL_BLEND.

Prototype

int GL_BLEND

To view the source code for com.badlogic.gdx.graphics GL20 GL_BLEND.

Click Source Link

Usage

From source file:com.bitfire.postprocessing.demo.PostProcessing.java

License:Apache License

@Override
public void beforeRenderToScreen() {
    if (blending) {
        Gdx.gl20.glEnable(GL20.GL_BLEND);
        Gdx.gl20.glBlendFunc(GL20.GL_SRC_COLOR, GL20.GL_SRC_ALPHA);
    }
}

From source file:com.bitfire.postprocessing.effects.Bloom.java

License:Apache License

@Override
public void render(final FrameBuffer src, final FrameBuffer dest) {
    Texture texsrc = src.getColorBufferTexture();

    boolean blendingWasEnabled = PostProcessor.isStateEnabled(GL20.GL_BLEND);
    Gdx.gl.glDisable(GL20.GL_BLEND);/*from w w  w  .  ja va 2 s .c om*/

    pingPongBuffer.begin();
    {
        // threshold / high-pass filter
        // only areas with pixels >= threshold are blit to smaller fbo
        threshold.setInput(texsrc).setOutput(pingPongBuffer.getSourceBuffer()).render();

        // blur pass
        blur.render(pingPongBuffer);
    }
    pingPongBuffer.end();

    if (blending || blendingWasEnabled) {
        Gdx.gl.glEnable(GL20.GL_BLEND);
    }

    if (blending) {
        Gdx.gl.glBlendFunc(sfactor, dfactor);
    }

    // mix original scene and blurred threshold, modulate via
    // set(Base|Bloom)(Saturation|Intensity)
    combine.setOutput(dest).setInput(texsrc, pingPongBuffer.getResultTexture()).render();
}

From source file:com.bitfire.postprocessing.effects.CrtMonitor.java

License:Apache License

@Override
public void render(FrameBuffer src, FrameBuffer dest) {
    // the original scene
    Texture in = src.getColorBufferTexture();

    boolean blendingWasEnabled = PostProcessor.isStateEnabled(GL20.GL_BLEND);
    Gdx.gl.glDisable(GL10.GL_BLEND);/*from   w ww.j a  v a2 s  . co m*/

    Texture out = null;

    if (doblur) {

        pingPongBuffer.begin();
        {
            // crt pass
            crt.setInput(in).setOutput(pingPongBuffer.getSourceBuffer()).render();

            // blur pass
            blur.render(pingPongBuffer);
        }
        pingPongBuffer.end();

        out = pingPongBuffer.getResultTexture();
    } else {
        // crt pass
        crt.setInput(in).setOutput(buffer).render();

        out = buffer.getColorBufferTexture();
    }

    if (blending || blendingWasEnabled) {
        Gdx.gl.glEnable(GL20.GL_BLEND);
    }

    if (blending) {
        Gdx.gl.glBlendFunc(sfactor, dfactor);
    }

    // do combine pass
    combine.setOutput(dest).setInput(in, out).render();
}

From source file:com.bitfire.postprocessing.effects.LensFlare2.java

License:Apache License

@Override
public void render(final FrameBuffer src, final FrameBuffer dest) {
    Texture texsrc = src.getColorBufferTexture();

    boolean blendingWasEnabled = PostProcessor.isStateEnabled(GL20.GL_BLEND);
    Gdx.gl.glDisable(GL20.GL_BLEND);//from  w  ww  .j av a  2  s  .  com

    pingPongBuffer.begin();
    {
        // apply bias
        bias.setInput(texsrc).setOutput(pingPongBuffer.getSourceBuffer()).render();

        lens.setInput(pingPongBuffer.getSourceBuffer()).setOutput(pingPongBuffer.getResultBuffer()).render();

        pingPongBuffer.set(pingPongBuffer.getResultBuffer(), pingPongBuffer.getSourceBuffer());

        // blur pass
        blur.render(pingPongBuffer);
    }
    pingPongBuffer.end();

    if (blending || blendingWasEnabled) {
        Gdx.gl.glEnable(GL20.GL_BLEND);
    }

    if (blending) {
        Gdx.gl.glBlendFunc(sfactor, dfactor);
    }

    restoreViewport(dest);

    // mix original scene and blurred threshold, modulate via
    combine.setOutput(dest).setInput(texsrc, pingPongBuffer.getResultTexture()).render();
}

From source file:com.bitfire.postprocessing.effects.LightGlow.java

License:Apache License

@Override
public void render(final FrameBuffer src, final FrameBuffer dest) {
    Texture texsrc = src.getColorBufferTexture();

    boolean blendingWasEnabled = PostProcessor.isStateEnabled(GL20.GL_BLEND);
    Gdx.gl.glDisable(GL20.GL_BLEND);//from w  w w  . j a  va 2 s  .  com

    pingPongBuffer.begin();
    {
        // apply bias
        bias.setInput(texsrc).setOutput(pingPongBuffer.getSourceBuffer()).render();

        glow.setInput(pingPongBuffer.getSourceBuffer()).setOutput(pingPongBuffer.getResultBuffer()).render();

    }
    pingPongBuffer.end();

    if (blending || blendingWasEnabled) {
        Gdx.gl.glEnable(GL20.GL_BLEND);
    }

    if (blending) {
        Gdx.gl.glBlendFunc(sfactor, dfactor);
    }

    restoreViewport(dest);

    // mix original scene and blurred threshold, modulate via
    combine.setOutput(dest).setInput(texsrc, pingPongBuffer.getResultTexture()).render();
}

From source file:com.bitfire.postprocessing.effects.LightScattering.java

License:Apache License

@Override
public void render(final FrameBuffer src, final FrameBuffer dest) {
    Texture texsrc = src.getColorBufferTexture();

    boolean blendingWasEnabled = PostProcessor.isStateEnabled(GL20.GL_BLEND);
    Gdx.gl.glDisable(GL20.GL_BLEND);/*w  ww . j a v a 2s  .c o  m*/

    pingPongBuffer.begin();
    {
        // apply bias
        bias.setInput(texsrc).setOutput(pingPongBuffer.getSourceBuffer()).render();

        scattering.setInput(pingPongBuffer.getSourceBuffer()).setOutput(pingPongBuffer.getResultBuffer())
                .render();

        pingPongBuffer.set(pingPongBuffer.getResultBuffer(), pingPongBuffer.getSourceBuffer());

        // blur pass
        blur.render(pingPongBuffer);
    }
    pingPongBuffer.end();

    if (blending || blendingWasEnabled) {
        Gdx.gl.glEnable(GL20.GL_BLEND);
    }

    if (blending) {
        Gdx.gl.glBlendFunc(sfactor, dfactor);
    }

    restoreViewport(dest);

    // mix original scene and blurred threshold, modulate via
    combine.setOutput(dest).setInput(texsrc, pingPongBuffer.getResultTexture()).render();
}

From source file:com.bladecoder.engineeditor.scneditor.CanvasDrawer.java

License:Apache License

public void drawSelectedActor(BaseActor selectedActor) {
    // Gdx.gl20.glLineWidth(3);
    Gdx.gl20.glEnable(GL20.GL_BLEND);
    // Gdx.gl20.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    drawer.setProjectionMatrix(camera.combined);
    //      drawer.setTransformMatrix(new Matrix4());

    if (selectedActor instanceof AnchorActor) {
        drawer.begin(ShapeRenderer.ShapeType.Line);
        drawer.setColor(MOUSESELECTION_STROKE_COLOR);
        drawer.rect(selectedActor.getX() - Scene.ANCHOR_RADIUS, selectedActor.getY() - Scene.ANCHOR_RADIUS,
                Scene.ANCHOR_RADIUS * 2, Scene.ANCHOR_RADIUS * 2);
        drawer.end();//  ww  w. j  a va2  s  .co  m
    } else {

        Rectangle rect = selectedActor.getBBox().getBoundingRectangle();

        drawer.begin(ShapeRenderer.ShapeType.Filled);
        drawer.setColor(MOUSESELECTION_FILL_COLOR);
        drawer.rect(rect.x, rect.y, rect.width, rect.height);
        drawer.end();

        drawer.begin(ShapeRenderer.ShapeType.Line);
        drawer.setColor(MOUSESELECTION_STROKE_COLOR);
        drawer.rect(rect.x, rect.y, rect.width, rect.height);

        // DRAW SELECTION BOUNDS
        if ((!(selectedActor instanceof SpriteActor) || !((SpriteActor) selectedActor).isBboxFromRenderer())
                && !(selectedActor instanceof AnchorActor)) {
            float verts[] = selectedActor.getBBox().getTransformedVertices();
            for (int i = 0; i < verts.length; i += 2)
                drawer.rect(verts[i] - CORNER_DIST / 2, verts[i + 1] - CORNER_DIST / 2, CORNER_DIST,
                        CORNER_DIST);
        }

        drawer.end();
    }

}

From source file:com.blastedstudios.ledge.ui.postprocessing.effects.Bloom.java

License:Apache License

@Override
public void render(final FrameBuffer src, final FrameBuffer dest) {
    Texture texsrc = src.getColorBufferTexture();

    boolean blendingWasEnabled = PostProcessor.isStateEnabled(GL20.GL_BLEND);
    Gdx.gl.glDisable(GL20.GL_BLEND);//from   w  w  w . jav  a2 s.  c o  m

    pingPongBuffer.begin();
    {
        // threshold / high-pass filter
        // only areas with pixels >= threshold are blit to smaller fbo
        threshold.setInput(texsrc).setOutput(pingPongBuffer.getSourceBuffer()).render();

        // blur pass
        blur.render(pingPongBuffer);
    }
    pingPongBuffer.end();

    if (blending || blendingWasEnabled) {
        Gdx.gl.glEnable(GL20.GL_BLEND);
    }

    if (blending) {
        // TODO support for Gdx.gl.glBlendFuncSeparate(sfactor, dfactor, GL20.GL_ONE, GL20.GL_ONE );
        Gdx.gl.glBlendFunc(sfactor, dfactor);
    }

    restoreViewport(dest);

    // mix original scene and blurred threshold, modulate via
    // set(Base|Bloom)(Saturation|Intensity)
    combine.setOutput(dest).setInput(texsrc, pingPongBuffer.getResultTexture()).render();
}

From source file:com.blastedstudios.ledge.ui.postprocessing.effects.CrtMonitor.java

License:Apache License

@Override
public void render(FrameBuffer src, FrameBuffer dest) {
    // the original scene
    Texture in = src.getColorBufferTexture();

    boolean blendingWasEnabled = PostProcessor.isStateEnabled(GL20.GL_BLEND);
    Gdx.gl.glDisable(GL20.GL_BLEND);/* w  w w . j a  v  a 2s  .  c o  m*/

    Texture out = null;

    if (doblur) {

        pingPongBuffer.begin();
        {
            // crt pass
            crt.setInput(in).setOutput(pingPongBuffer.getSourceBuffer()).render();

            // blur pass
            blur.render(pingPongBuffer);
        }
        pingPongBuffer.end();

        out = pingPongBuffer.getResultTexture();
    } else {
        // crt pass
        crt.setInput(in).setOutput(buffer).render();

        out = buffer.getColorBufferTexture();
    }

    if (blending || blendingWasEnabled) {
        Gdx.gl.glEnable(GL20.GL_BLEND);
    }

    if (blending) {
        Gdx.gl.glBlendFunc(sfactor, dfactor);
    }

    restoreViewport(dest);

    // do combine pass
    combine.setOutput(dest).setInput(in, out).render();
}

From source file:com.box2dLight.box2dLight.LightMap.java

License:Apache License

public void render(Matrix4 combined, float x1, float x2, float y1, float y2) {

    boolean needed = rayHandler.lightRenderedLastFrame > 0;
    // this way lot less binding
    if (needed && rayHandler.blur)
        gaussianBlur();// w  w  w  .j  a  va  2s  .  c  o  m

    if (lightMapDrawingDisabled) {
        return;
    }
    frameBuffer.getColorBufferTexture().bind(0);

    // at last lights are rendered over scene
    if (rayHandler.shadows) {

        final Color c = rayHandler.ambientLight;
        ShaderProgram shader = shadowShader;
        if (RayHandler.isDiffuse) {
            shader = diffuseShader;
            shader.begin();
            Gdx.gl20.glBlendFunc(GL20.GL_DST_COLOR, GL20.GL_SRC_COLOR);
            shader.setUniformf("ambient", c.r, c.g, c.b, c.a);
        } else {
            shader.begin();
            Gdx.gl20.glBlendFunc(GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA);
            shader.setUniformf("ambient", c.r * c.a, c.g * c.a, c.b * c.a, 1f - c.a);
        }
        lightMapMesh.render(shader, GL20.GL_TRIANGLE_FAN);
        shader.end();
    } else if (needed) {

        Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE);
        withoutShadowShader.begin();
        // withoutShadowShader.setUniformi("u_texture", 0);
        lightMapMesh.render(withoutShadowShader, GL20.GL_TRIANGLE_FAN);
        withoutShadowShader.end();
    }

    Gdx.gl20.glDisable(GL20.GL_BLEND);
}