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

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

Introduction

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

Prototype

int GL_DST_COLOR

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

Click Source Link

Usage

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  av  a  2 s  .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);
}

From source file:de.brainstormsoftworks.taloonerrl.render.Renderer.java

License:Open Source License

/**
 * sets the blending to a semi-transparent one
 */
public void setScreenBlendingAlpha() {
    spriteBatchScreen.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_DST_COLOR);
}

From source file:es.eucm.ead.editor.components.EditorImageActor.java

License:Open Source License

protected void drawCollider(Batch batch) {
    if (getCollider() != null) {
        batch.end();/*from ww w.  j  av  a2 s. c o  m*/
        Gdx.gl.glEnable(GL20.GL_BLEND);
        Gdx.gl.glBlendFunc(GL20.GL_ONE, GL20.GL_DST_COLOR);
        Gdx.gl.glBlendEquation(GL20.GL_FUNC_SUBTRACT);
        shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix());
        shapeRenderer.setTransformMatrix(batch.getTransformMatrix());
        shapeRenderer.begin(ShapeType.Line);
        shapeRenderer.setColor(Color.WHITE);
        for (Polygon polygon : getCollider()) {
            float[] vertices = polygon.getVertices();
            shapeRenderer.polygon(vertices);
        }
        shapeRenderer.end();
        Gdx.gl.glBlendEquation(GL20.GL_FUNC_ADD);
        Gdx.gl.glDisable(GL20.GL_BLEND);
        batch.begin();
    }
}

From source file:es.eucm.ead.editor.view.widgets.groupeditor.Grouper.java

License:Open Source License

@Override
protected void drawChildren(Batch batch, float parentAlpha) {
    batch.end();/*  w w  w.j  ava  2 s .  co m*/
    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_ONE, GL20.GL_DST_COLOR);
    Gdx.gl.glBlendEquation(GL20.GL_FUNC_SUBTRACT);
    shapeRenderer.setColor(Color.WHITE);
    shapeRenderer.begin(ShapeType.Line);
    super.drawChildren(batch, parentAlpha);
    shapeRenderer.end();
    Gdx.gl.glBlendEquation(GL20.GL_FUNC_ADD);
    Gdx.gl.glDisable(GL20.GL_BLEND);
    batch.begin();
}

From source file:es.eucm.ead.editor.view.widgets.groupeditor.Handles.java

License:Open Source License

@Override
protected void drawChildren(Batch batch, float parentAlpha) {
    batch.end();//from w ww .j a v  a  2  s .  c  om
    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_ONE, GL20.GL_DST_COLOR);
    Gdx.gl.glBlendEquation(GL20.GL_FUNC_SUBTRACT);
    shapeRenderer.setProjectionMatrix(batch.getProjectionMatrix());
    shapeRenderer.setTransformMatrix(batch.getTransformMatrix());
    shapeRenderer.begin(ShapeType.Line);
    shapeRenderer.setColor(Color.WHITE);
    shapeRenderer.line(handles[0].getX(), handles[0].getY(), handles[2].getX(), handles[2].getY());
    shapeRenderer.line(handles[0].getX(), handles[0].getY(), handles[6].getX(), handles[6].getY());
    shapeRenderer.line(handles[2].getX(), handles[2].getY(), handles[8].getX(), handles[8].getY());
    shapeRenderer.line(handles[8].getX(), handles[8].getY(), handles[6].getX(), handles[6].getY());
    shapeRenderer.end();
    super.drawChildren(batch, parentAlpha);
    Gdx.gl.glBlendEquation(GL20.GL_FUNC_ADD);
    Gdx.gl.glDisable(GL20.GL_BLEND);
    batch.begin();
}

From source file:headmade.arttag.screens.ArtTagScreen.java

License:Apache License

public ArtTagScreen(DirectedGame game, String map) {
    super(game);// , new Stage(new ExtendViewport(MIN_WORLD_WIDTH, MIN_WORLD_HEIGHT), game.getBatch()));

    fpsLogger = new FPSLogger();

    Player.instance.inventory.clear();/*from  ww  w  . j  av  a2s . c o  m*/
    Player.instance.setControlArtCount(0);
    Player.instance.setArtScanCount(0);
    Player.instance.setArtViewCount(0);
    Player.instance.isMoveDown = false;
    Player.instance.isMoveUp = false;
    Player.instance.isMoveLeft = false;
    Player.instance.isMoveRight = false;

    camera = new OrthographicCamera(MIN_WORLD_WIDTH, MIN_WORLD_HEIGHT);
    ((OrthographicCamera) camera).zoom = 0.5f;

    // perspectiveCam = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    // perspectiveCam.position.set(300f, 3000f, 1000f);
    // perspectiveCam.lookAt(300, 300, 0);
    // perspectiveCam.near = 0.1f;
    // perspectiveCam.far = 10000f;
    // perspectiveCam.update();

    contactListener = new ArtTagContactListener(this);

    this.world = new World(new Vector2(0f, 0f), true);
    world.setContactListener(contactListener);
    world.setDestructionListener(new DestructionListener() {

    });

    /** BOX2D LIGHT STUFF BEGIN */
    rayHandler = new RayHandler(world);
    rayHandler.setAmbientLight(0.08f, 0.08f, 0.16f, 0.1f);
    rayHandler.setBlurNum(ArtTag.gameSettings.blur);
    rayHandler.diffuseBlendFunc.set(GL20.GL_DST_COLOR, GL20.GL_SRC_COLOR);
    // RayHandler.setGammaCorrection(true);
    RayHandler.useDiffuseLight(true);
    // rayHandler.setBlur(false);
    /** BOX2D LIGHT STUFF END */

    shapeRenderer = new ShapeRenderer();
    box2dDebugRenderer = new Box2DDebugRenderer();
    inputController = new ArtTagInputController(game, this);

    jobDescActor = new Label("", Assets.instance.skin, "jobDesc");
    imageActor = new Image(Assets.assetsManager.get(AssetTextures.animal4, Texture.class));
    jobDescActor.setWrap(true);
    instructionsActor = new Label("Instructions", Assets.instance.skin, "info");
    instructionsActor.setWrap(true);
    instructionsActor.setVisible(false);
    resultActor = new Label("Result", Assets.instance.skin, "scanner");
    resultActor.setVisible(false);
    resultActor.setAlignment(Align.center);
    final Label scoreLabel = new Label("Your Score", Assets.instance.skin, "white");
    final Label highscoreLabel = new Label("Highscore", Assets.instance.skin, "white");
    final Label scoreActor = new Label("$" + Player.instance.getCash(), Assets.instance.skin, "dollar");
    final Label highscoreActor = new Label("$" + ArtTag.highScore, Assets.instance.skin, "dollar");

    Gdx.app.log(TAG, "camera.viewportWidth " + camera.viewportWidth + " Gdx.graphics.getWidth(): "
            + Gdx.graphics.getWidth());
    rootTable = new Table(Assets.instance.skin);
    rootTable.setFillParent(true);
    rootTable.add(jobDescActor).pad(10f).width(camera.viewportWidth / ArtTag.UNIT_SCALE / 4);
    rootTable.add(imageActor).center().expand();
    rootTable.add(instructionsActor).top().right().pad(10f).width(camera.viewportWidth / ArtTag.UNIT_SCALE / 4);
    rootTable.row();
    rootTable.add(scoreLabel).left();
    rootTable.add();
    rootTable.add(highscoreLabel).right();
    rootTable.row();
    rootTable.add(scoreActor).left();
    rootTable.add(resultActor).center().width(camera.viewportWidth / ArtTag.UNIT_SCALE / 4);
    rootTable.add(highscoreActor).right();

    stage.addActor(rootTable);

    newJob();
    MapUtils.loadMap(this, map != null ? map : AssetMaps.map1);

    final Loader<Sprite> loader = Assets.instance.getSpriterLoader();
    drawer = new LibGdxDrawer(loader, game.getBatch(), shapeRenderer);
    final headmade.arttag.spriter.Player player = new headmade.arttag.spriter.Player(
            Assets.instance.getMaggieSpriterData());
    player.setAnimation("run");
    player.setScale(ArtTag.UNIT_SCALE * 0.8f);
    players.add(player);

    smokeEffect = new ParticleEffect();
    smokeEffect.load(Gdx.files.internal(AssetParticles.smoke), Assets.instance.atlas);
    smokeEffect.scaleEffect(ArtTag.UNIT_SCALE);
    smokeEffectPool = new ParticleEffectPool(smokeEffect, 2, 4);

}

From source file:org.bladecoder.bladeengine.model.Scene.java

License:Apache License

public void draw(SpriteBatch spriteBatch) {

    if (background != null) {
        spriteBatch.disableBlending();/*w  ww  .j  a  v  a  2  s.  co m*/

        float x = 0;

        for (Texture tile : background) {
            spriteBatch.draw(tile, x, 0f);
            x += tile.getWidth();
        }

        spriteBatch.enableBlending();
    }

    for (Actor a : orderedActors) {
        if (a instanceof SpriteActor)
            ((SpriteActor) a).draw(spriteBatch);
    }

    for (SpriteActor a : fgActors) {
        a.draw(spriteBatch);
    }

    // Draw the light map
    if (lightMap != null) {
        // Multiplicative blending for light maps
        spriteBatch.setBlendFunction(GL20.GL_DST_COLOR, GL20.GL_ZERO);

        float x = 0;

        for (Texture tile : lightMap) {
            spriteBatch.draw(tile, x, 0f);
            x += tile.getWidth();
        }

        spriteBatch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    }

    if (overlay != null) {
        overlay.draw(spriteBatch);
    }

    if (EngineLogger.debugMode() && EngineLogger.getDebugLevel() == EngineLogger.DEBUG1) {

        StringBuilder sb = new StringBuilder();

        for (Actor a : orderedActors) {
            Rectangle r = a.getBBox().getBoundingRectangle();
            sb.setLength(0);
            sb.append(a.getId());
            if (a.getState() != null)
                sb.append(".").append(a.getState());
            // sb.append(" (").append((int) r.getX()).append(", ");
            // sb.append((int) r.getY()).append(", ").append((int)
            // r.getWidth());
            // sb.append(", ").append((int) r.getHeight()).append(") ");
            EngineLogger.getDebugFont().draw(spriteBatch, sb.toString(), r.getX(), r.getY());
        }

    }
}