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

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

Introduction

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

Prototype

int GL_SRC_ALPHA

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

Click Source Link

Usage

From source file:at.therefactory.jewelthief.ui.Particles.java

License:Open Source License

/**
 * if particle effect includes additive or pre-multiplied particle emitters
 * you can turn off blend function clean-up to save a lot of draw calls
 * but remember to switch the Batch back to GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
 * before drawing "regular" sprites or your Stage.
 *
 * @param batch/* w  w w  . java 2s .com*/
 */
private void resetBlendFunction(SpriteBatch batch) {
    batch.setBlendFunction(-1, -1);
    Gdx.gl20.glBlendFuncSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE,
            GL20.GL_DST_ALPHA);
}

From source file:br.com.animvs.koalory.entities.engine.graphics.tiles.TileRenderer.java

License:Apache License

@Override
public void render() {
    if (!cached) {
        cached = true;//from w ww . ja  v a2 s.co m
        count = 0;
        spriteCache.clear();

        final float extraWidth = viewBounds.width * overCache;
        final float extraHeight = viewBounds.height * overCache;
        cacheBounds.x = viewBounds.x - extraWidth;
        cacheBounds.y = viewBounds.y - extraHeight;
        cacheBounds.width = viewBounds.width + extraWidth * 2;
        cacheBounds.height = viewBounds.height + extraHeight * 2;

        for (MapLayer layer : map.getLayers()) {
            spriteCache.beginCache();
            if (layer instanceof TiledMapTileLayer) {
                renderTileLayer((TiledMapTileLayer) layer);
            }
            spriteCache.endCache();
        }
    }

    if (blending) {
        Gdx.gl.glEnable(GL20.GL_BLEND);
        Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    }

    spriteCache.setShader(controller.getShaderColor().getGDXShader());
    spriteCache.begin();
    controller.getShaderColor().update();

    MapLayers mapLayers = map.getLayers();
    for (int i = 0, j = mapLayers.getCount(); i < j; i++) {
        MapLayer layer = mapLayers.get(i);
        if (layer.isVisible()) {
            spriteCache.draw(i);
            renderObjects(layer);
        }
    }
    spriteCache.end();
    if (blending)
        Gdx.gl.glDisable(GL20.GL_BLEND);
}

From source file:br.com.animvs.koalory.entities.engine.graphics.tiles.TileRenderer.java

License:Apache License

@Override
public void render(int[] layers) {
    if (!cached) {
        cached = true;/*from  w  w  w  . j  av a2s . c  o  m*/
        count = 0;
        spriteCache.clear();

        final float extraWidth = viewBounds.width * overCache;
        final float extraHeight = viewBounds.height * overCache;
        cacheBounds.x = viewBounds.x - extraWidth;
        cacheBounds.y = viewBounds.y - extraHeight;
        cacheBounds.width = viewBounds.width + extraWidth * 2;
        cacheBounds.height = viewBounds.height + extraHeight * 2;

        for (MapLayer layer : map.getLayers()) {
            spriteCache.beginCache();
            if (layer instanceof TiledMapTileLayer) {
                renderTileLayer((TiledMapTileLayer) layer);
            }
            spriteCache.endCache();
        }
    }

    if (blending) {
        Gdx.gl.glEnable(GL20.GL_BLEND);
        Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    }
    spriteCache.begin();
    MapLayers mapLayers = map.getLayers();
    for (int i : layers) {
        MapLayer layer = mapLayers.get(i);
        if (layer.isVisible()) {
            spriteCache.draw(i);
            renderObjects(layer);
        }
    }
    spriteCache.end();
    if (blending)
        Gdx.gl.glDisable(GL20.GL_BLEND);
}

From source file:br.com.raphaelbruno.game.zombieinvaders.vr.model.FadeRenderer.java

License:Apache License

public void shows(float delta) {
    if (!isPlaying)
        return;//from ww  w.  j a v a 2  s.  com

    if (isRunning) {
        alpha += ALPHA_VELOCITY * delta;
        if (alpha > 1f) {
            alpha = 1f;
            if (isRunning && onFinished != null) {
                Timer.schedule(new Timer.Task() {
                    @Override
                    public void run() {
                        onFinished.run();
                    }
                }, DELAY_TO_FINISH);
                isRunning = false;
            }
        }
        red = 1f - alpha;
    }

    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    begin(ShapeType.Filled);
    setColor(red, 0f, 0f, alpha);
    rect(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    end();
    Gdx.gl.glDisable(GL20.GL_BLEND);
}

From source file:br.com.raphaelbruno.game.zombieinvaders.vr.model.GameObject.java

License:Apache License

public GameObject(ScreenBase context, Model model, BoundingBox bounds) {
    super(model);
    this.context = context;
    this.customBounds = bounds;

    this.bounds = this.customBounds != null ? this.customBounds : new BoundingBox();
    this.center = new Vector3();
    this.enabled = true;
    updateBox();// ww  w. ja  v  a2  s  . com

    this.animations = new AnimationController(this);
    this.blending = new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    for (Material item : materials) {
        item.set(new DepthTestAttribute(GL20.GL_LEQUAL, 0.01f, 25f, true));
        item.set(FloatAttribute.createAlphaTest(0.01f));
        item.set(blending);
    }
}

From source file:cocos2d.layers_scenes_transitions_nodes.CCLayerColor.java

License:Open Source License

@Override
public void draw() {
    CCDrawManager.SPRITE_BATCH.end();/*  ww  w  .j  a  v a2 s .c o m*/

    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    CCDrawManager.SHAPE_RENDERER.setProjectionMatrix(CCDrawManager.SPRITE_BATCH.getProjectionMatrix());
    CCDrawManager.SHAPE_RENDERER.setTransformMatrix(CCDrawManager.SPRITE_BATCH.getTransformMatrix());
    CCDrawManager.SHAPE_RENDERER.setColor(_displayedColor.R / 255.0f, _displayedColor.G / 255.0f,
            _displayedColor.B / 255.0f, _displayedOpacity / 255.0f);
    CCDrawManager.SHAPE_RENDERER.begin(ShapeType.Filled);
    CCDrawManager.SHAPE_RENDERER.rect(0, 0, m_obContentSize.width, m_obContentSize.height);
    CCDrawManager.SHAPE_RENDERER.end();

    Gdx.gl.glDisable(GL20.GL_BLEND);

    CCDrawManager.SPRITE_BATCH.begin();
}

From source file:com.badlogic.gdx.tests.g3d.shaders.MultiPassShader.java

License:Apache License

@Override
public void render(Renderable renderable) {
    set(u_pass, 0f);/*from  w  w  w .ja  v a 2 s .  c o m*/
    super.render(renderable);
    context.setDepthTest(GL20.GL_LESS);
    if (has(u_pass)) {
        context.setBlending(true, GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
        for (int i = 1; i < passes; ++i) {
            set(u_pass, (float) i / (float) passes);
            renderable.mesh.render(program, renderable.primitiveType, renderable.meshPartOffset,
                    renderable.meshPartSize, false);
        }
    }
}

From source file:com.badlogic.invaders.simulation.Simulation.java

License:Apache License

private void populate() {
    ObjLoader objLoader = new ObjLoader();
    shipModel = objLoader.loadModel(Gdx.files.internal("data/ship.obj"));
    invaderModel = objLoader.loadModel(Gdx.files.internal("data/invader.obj"));
    blockModel = objLoader.loadModel(Gdx.files.internal("data/block.obj"));
    shotModel = objLoader.loadModel(Gdx.files.internal("data/shot.obj"));

    final Texture shipTexture = new Texture(Gdx.files.internal("data/ship.png"), Format.RGB565, true);
    shipTexture.setFilter(TextureFilter.MipMap, TextureFilter.Linear);
    final Texture invaderTexture = new Texture(Gdx.files.internal("data/invader.png"), Format.RGB565, true);
    invaderTexture.setFilter(TextureFilter.MipMap, TextureFilter.Linear);
    shipModel.materials.get(0).set(TextureAttribute.createDiffuse(shipTexture));
    invaderModel.materials.get(0).set(TextureAttribute.createDiffuse(invaderTexture));

    ((ColorAttribute) blockModel.materials.get(0).get(ColorAttribute.Diffuse)).color.set(0, 0, 1, 0.5f);
    blockModel.materials.get(0).set(new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA));

    shotModel.materials.get(0).set(ColorAttribute.createDiffuse(1, 1, 0, 1f));

    final Texture explosionTexture = new Texture(Gdx.files.internal("data/explode.png"), Format.RGBA4444, true);
    explosionTexture.setFilter(TextureFilter.MipMap, TextureFilter.Linear);

    final Mesh explosionMesh = new Mesh(true, 4 * 16, 6 * 16,
            new VertexAttribute(Usage.Position, 3, "a_position"),
            new VertexAttribute(Usage.TextureCoordinates, 2, "a_texCoord0"));

    float[] vertices = new float[4 * 16 * (3 + 2)];
    short[] indices = new short[6 * 16];
    int idx = 0;//from   w w w.  j  a  va2  s  .co  m
    int index = 0;
    for (int row = 0; row < 4; row++) {
        for (int column = 0; column < 4; column++) {
            vertices[idx++] = 1;
            vertices[idx++] = 1;
            vertices[idx++] = 0;
            vertices[idx++] = 0.25f + column * 0.25f;
            vertices[idx++] = 0 + row * 0.25f;

            vertices[idx++] = -1;
            vertices[idx++] = 1;
            vertices[idx++] = 0;
            vertices[idx++] = 0 + column * 0.25f;
            vertices[idx++] = 0 + row * 0.25f;

            vertices[idx++] = -1;
            vertices[idx++] = -1;
            vertices[idx++] = 0;
            vertices[idx++] = 0f + column * 0.25f;
            vertices[idx++] = 0.25f + row * 0.25f;

            vertices[idx++] = 1;
            vertices[idx++] = -1;
            vertices[idx++] = 0;
            vertices[idx++] = 0.25f + column * 0.25f;
            vertices[idx++] = 0.25f + row * 0.25f;

            final int t = (4 * row + column) * 4;
            indices[index++] = (short) (t);
            indices[index++] = (short) (t + 1);
            indices[index++] = (short) (t + 2);
            indices[index++] = (short) (t);
            indices[index++] = (short) (t + 2);
            indices[index++] = (short) (t + 3);
        }
    }

    explosionMesh.setVertices(vertices);
    explosionMesh.setIndices(indices);

    explosionModel = ModelBuilder.createFromMesh(explosionMesh, GL20.GL_TRIANGLES,
            new Material(new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA),
                    TextureAttribute.createDiffuse(explosionTexture)));

    ship = new Ship(shipModel);
    ship.transform.rotate(0, 1, 0, 180);

    for (int row = 0; row < 4; row++) {
        for (int column = 0; column < 8; column++) {
            Invader invader = new Invader(invaderModel, -PLAYFIELD_MAX_X / 2 + column * 2f, 0,
                    PLAYFIELD_MIN_Z + row * 2f);
            invaders.add(invader);
        }
    }

    for (int shield = 0; shield < 3; shield++) {
        blocks.add(new Block(blockModel, -10 + shield * 10 - 1, 0, -2));
        blocks.add(new Block(blockModel, -10 + shield * 10 - 1, 0, -3));
        blocks.add(new Block(blockModel, -10 + shield * 10 + 0, 0, -3));
        blocks.add(new Block(blockModel, -10 + shield * 10 + 1, 0, -3));
        blocks.add(new Block(blockModel, -10 + shield * 10 + 1, 0, -2));
    }
}

From source file:com.belocraft.gameworld.GameRenderer.java

private void drawTransition(float delta) {
    if (alpha.getValue() > 0) {
        manager.update(delta);//from w  w  w  .j ava2 s.  com
        Gdx.gl.glEnable(GL20.GL_BLEND);
        Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
        shapeRenderer.begin(ShapeType.Filled);
        shapeRenderer.setColor(1, 1, 1, alpha.getValue());
        shapeRenderer.rect(0, 0, 136, 300);
        shapeRenderer.end();
        Gdx.gl.glDisable(GL20.GL_BLEND);

    }
}

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);
    }
}