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

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

Introduction

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

Prototype

int GL_ONE_MINUS_SRC_ALPHA

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

Click Source Link

Usage

From source file:com.kotcrab.vis.editor.module.physicseditor.PRenderer.java

License:Apache License

private void drawOrigin(Vector2 o, Vector2 nearestPoint) {
    Gdx.gl.glLineWidth(2);//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);

    float len = 0.03f * camera.getZoom();
    float radius = 0.02f * camera.getZoom();

    drawer.begin(ShapeRenderer.ShapeType.Line);
    drawer.setColor(ORIGIN_COLOR);
    drawer.line(o.x - len, o.y, o.x + len, o.y);
    drawer.line(o.x, o.y - len, o.x, o.y + len);
    drawer.end();

    if (nearestPoint != o) {
        drawer.begin(ShapeType.Line);
        drawer.setColor(ORIGIN_COLOR);
        drawer.circle(o.x, o.y, radius, 20);
        drawer.end();
    } else {
        drawer.begin(ShapeType.Filled);
        drawer.setColor(ORIGIN_COLOR);
        drawer.circle(o.x, o.y, radius, 20);
        drawer.end();
    }
}

From source file:com.kotcrab.vis.editor.module.physicseditor.PRenderer.java

License:Apache License

private void drawMouseSelection(float x1, float y1, float x2, float y2) {
    Gdx.gl.glLineWidth(3);/*w  w  w  .j  av a2  s .  co  m*/
    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    Rectangle rect = new Rectangle(Math.min(x1, x2), Math.min(y1, y2), Math.abs(x2 - x1), Math.abs(y2 - y1));

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

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

From source file:com.mob.client.artemis.systems.render.GridRenderingSystem.java

License:Open Source License

@Override
protected void begin() {
    super.begin();

    // Inicializamos el batch y lo necesario para renderizar
    Gdx.gl.glEnable(GL20.GL_BLEND);/*from   ww w.j  av a2  s  .  c o  m*/
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    this.mCameraSystem.camera.update();
    this.mShapeRenderer.setProjectionMatrix(this.mCameraSystem.camera.combined);
    this.mShapeRenderer.begin();

}

From source file:com.mob.dao.objects.Map.java

License:Open Source License

/**
 * Renders a map layer to it's internal FrameBuffer Object
 *
 * @param layer/*from   www .  j  a  v a 2 s . com*/
 * @return void
 */
public void renderLayerToBuffer(int layer) {

    int width = (int) (Map.MAX_MAP_SIZE_WIDTH * Map.TILE_PIXEL_WIDTH);
    int height = (int) (Map.MAX_MAP_SIZE_HEIGHT * Map.TILE_PIXEL_HEIGHT);

    OrthographicCamera camera = new OrthographicCamera(width, height);
    camera.setToOrtho(true, width, height);

    FrameBuffer fbo = new FrameBuffer(Pixmap.Format.RGBA8888, width, height, false);
    SpriteBatch sb = new SpriteBatch();
    sb.setProjectionMatrix(camera.combined);
    fbo.begin();

    sb.enableBlending();
    Gdx.gl.glBlendFuncSeparate(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA, GL20.GL_ONE,
            GL20.GL_ONE_MINUS_SRC_ALPHA);
    Gdx.gl.glViewport(0, 0, width, height);
    Gdx.gl.glClearColor(0, 0, 0, 0);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    sb.begin();
    this.renderLayer(sb, layer);
    sb.end();

    fbo.end();
    this.bufferedLayer = fbo.getColorBufferTexture();
}

From source file:com.mygdx.game.debugdrawers.NavMeshDebugDrawer.java

License:Apache License

public void drawNavMesh(MyShapeRenderer shapeRenderer, SpriteBatch spriteBatch, NavMesh navMesh,
        GameCharacter character, Bits visibleLayers, Camera camera, BitmapFont font) {

    this.visibleLayers = visibleLayers;
    this.shapeRenderer = shapeRenderer;
    this.navMesh = navMesh;

    if (shapeRenderer.isDrawing()) {
        shapeRenderer.end();/*  w w w  .  j a  v a  2 s.  com*/
    }

    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    shapeRenderer.begin(MyShapeRenderer.ShapeType.Line);
    drawNavMeshTriangles();
    if (character != null && character.steerer instanceof FollowPathSteerer) {
        FollowPathSteerer fpSteerer = (FollowPathSteerer) character.steerer;
        drawPathTriangles(fpSteerer.navMeshGraphPath, character.getCurrentTriangle());
        if (fpSteerer.navMeshPointPath.getSize() > 0) {
            drawPathPoints(fpSteerer.navMeshPointPath);
        }
        drawClosestPointDebug(character);
    }
    shapeRenderer.end();
    Gdx.gl.glDisable(GL20.GL_BLEND);

    drawNavMeshIndices(spriteBatch, camera, font);
}

From source file:com.mygdx.game.simulation.Simulation.java

License:Apache License

private void populate() {
    ObjLoader objLoader = new ObjLoader();

    for (int i = 0; i < MAX_SHIPS; i++) {
        shipModels[i] = objLoader.loadModel(Gdx.files.internal("data/ship.obj"));
    }// ww  w. j  a  v  a  2 s .co m
    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 shipTexture2 = new Texture(Gdx.files.internal("data/ship.png"), Format.RGB565, true);
    shipTexture2.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);

    for (int i = 0; i < MAX_SHIPS; i++) {
        shipModels[i].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;
    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);

    Material explosionMeshMaterial = new Material(
            new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA),
            TextureAttribute.createDiffuse(explosionTexture));
    explosionModel = new Model();
    MeshPart meshPart = new MeshPart();
    meshPart.id = "part1";
    meshPart.offset = 0;
    meshPart.size = explosionMesh.getNumIndices();
    meshPart.primitiveType = GL20.GL_TRIANGLES;
    meshPart.mesh = explosionMesh;

    NodePart partMaterial = new NodePart();
    partMaterial.material = explosionMeshMaterial;
    partMaterial.meshPart = meshPart;
    Node node = new Node();
    node.id = "node1";
    node.parts.add(partMaterial);

    explosionModel.meshes.add(explosionMesh);
    explosionModel.materials.add(explosionMeshMaterial);
    explosionModel.nodes.add(node);
    explosionModel.meshParts.add(meshPart);
    explosionModel.manageDisposable(explosionMesh);

    for (int i = 0; i < MAX_SHIPS; i++) {
        ships[i] = new Ship(shipModels[i]);
        ships[i].transform.rotate(1, 0, 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.nsoft.boxuniverse.misc.BaseMaterial.java

License:Open Source License

public BaseMaterial(String name) {

    materialName = name;//from   www . ja  va 2  s .  c o  m
    material = materials.materials.get(name);
    t = new Texture(Gdx.files.internal(material.path));

    RealMaterial = new Material(TextureAttribute.createDiffuse(t)); //Create GD3 Material

    if (material.hasAlpha)
        RealMaterial.set(new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)); //Set Alpha
    worldmaterials.put(name, this); // Add Material

    System.out.println("New Material Created");
}

From source file:com.o2d.pkayjava.editor.plugins.ninepatch.EditingZone.java

License:Apache License

public void drawBg(Batch batch, float parentAlpha) {
    batch.end();// w  w  w .  j a  va  2 s  .c o m
    Gdx.gl.glLineWidth(1.0f);
    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    shapeRenderer.setProjectionMatrix(getStage().getCamera().combined);
    Matrix4 matrix = batch.getTransformMatrix();
    shapeRenderer.setTransformMatrix(matrix);

    shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
    BG.a = parentAlpha;
    shapeRenderer.setColor(BG);
    shapeRenderer.rect(getX(), getY(), getWidth(), getHeight());
    shapeRenderer.end();

    Gdx.gl.glDisable(GL20.GL_BLEND);
    batch.begin();
    batch.setColor(Color.WHITE.r, Color.WHITE.g, Color.WHITE.b, Color.WHITE.a * parentAlpha);
}

From source file:com.o2d.pkayjava.editor.plugins.ninepatch.EditingZone.java

License:Apache License

public void drawSplits(Batch batch, float parentAlpha) {
    batch.end();/* w  w w .j av  a2s . c  o  m*/
    Gdx.gl.glLineWidth(1.0f);
    Gdx.gl.glEnable(GL20.GL_BLEND);
    Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    shapeRenderer.setProjectionMatrix(getStage().getCamera().combined);
    Matrix4 matrix = batch.getTransformMatrix();
    shapeRenderer.setTransformMatrix(matrix);

    shapeRenderer.begin(ShapeRenderer.ShapeType.Line);

    // left, right, top , bottom
    Color guideColor = new Color(GUIDE_COLOR);
    guideColor.a *= parentAlpha;
    Color overColor = new Color(OVER_GUIDE_COLOR);
    overColor.a *= parentAlpha;

    splitPositions[0] = shift.x + getWidth() / 2f + (-texture.getRegionWidth() / 2f + splits[0]) * currZoom;
    splitPositions[1] = shift.x + getWidth() / 2f + (texture.getRegionWidth() / 2f - splits[1]) * currZoom;
    splitPositions[2] = shift.y + getHeight() / 2f + (texture.getRegionHeight() / 2 - splits[2]) * currZoom;
    splitPositions[3] = shift.y + getHeight() / 2f + (-texture.getRegionHeight() / 2 + splits[3]) * currZoom;

    if (mouseOverSplit == 0)
        shapeRenderer.setColor(overColor);
    else
        shapeRenderer.setColor(guideColor);
    shapeRenderer.line(getX() + splitPositions[0], getY(), getX() + splitPositions[0], getY() + getHeight());

    if (mouseOverSplit == 1)
        shapeRenderer.setColor(overColor);
    else
        shapeRenderer.setColor(guideColor);
    shapeRenderer.line(getX() + splitPositions[1], getY(), getX() + splitPositions[1], getY() + getHeight());

    if (mouseOverSplit == 2)
        shapeRenderer.setColor(overColor);
    else
        shapeRenderer.setColor(guideColor);
    shapeRenderer.line(getX(), getY() + splitPositions[2], getX() + getWidth(), getY() + splitPositions[2]);

    if (mouseOverSplit == 3)
        shapeRenderer.setColor(overColor);
    else
        shapeRenderer.setColor(guideColor);
    shapeRenderer.line(getX(), getY() + splitPositions[3], getX() + getWidth(), getY() + splitPositions[3]);

    shapeRenderer.end();
    Gdx.gl.glDisable(GL20.GL_BLEND);
    batch.begin();
    batch.setColor(Color.WHITE.r, Color.WHITE.g, Color.WHITE.b, Color.WHITE.a * parentAlpha);
}

From source file:com.o2d.pkayjava.editor.view.ui.followers.PolygonFollower.java

License:Apache License

@Override
public void draw(Batch batch, float parentAlpha) {
    if (polygonComponent != null && polygonComponent.vertices != null) {
        batch.end();//from w ww. j  a  v  a 2  s .  c om

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

        shapeRenderer.setProjectionMatrix(getStage().getCamera().combined);
        Matrix4 matrix = batch.getTransformMatrix();
        matrix.scale(pixelsPerWU / runtimeCamera.zoom, pixelsPerWU / runtimeCamera.zoom, 1f);
        shapeRenderer.setTransformMatrix(matrix);

        drawTriangulatedPolygons();
        drawOutlines();
        drawPoints();

        Gdx.gl.glDisable(GL20.GL_BLEND);

        batch.begin();
    }
}