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:com.cyphercove.doublehelix.UnlitShader.java

License:Apache License

@Override
public void begin(Camera camera, RenderContext context) {
    context.setDepthTest(GL20.GL_NONE);//from   ww w.  ja v a  2 s .com

    program.begin();
    viewProjTrans.set(camera.combined);

    context.setDepthTest(GL20.GL_LEQUAL);
    context.setCullFace(GL20.GL_BACK);
    context.setBlending(false, GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    texture.bind(0);
    program.setUniformi(u_texture, 0);
}

From source file:com.cyphercove.lwptools.core.FullScreenFader.java

License:Apache License

public void render(float deltaTime) {
    if (elapsed >= fadeTime)
        return;//from  w w  w.j a  va2 s. c o m

    if (delay > 0) {
        delay -= deltaTime;
    }

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

    color.a = delay > 0 ? 1f : 1f - Interpolation.fade.apply(elapsed / fadeTime);

    if (shader == null)
        createShader();
    shader.begin();
    shader.setUniformf(u_color, color);
    mesh.render(shader, GL20.GL_TRIANGLE_FAN);

    shader.end();

    if (delay <= 0)
        elapsed += deltaTime;
}

From source file:com.esotericsoftware.spine.superspineboy.View.java

License:Open Source License

void render() {
    viewport.apply();//from  w w w  .  j ava2  s .c  o  m

    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    if (ui.bgButton.isChecked()) {
        mapRenderer.setBlending(false);
        mapRenderer.render(mapLayersOpaque1);

        mapRenderer.setBlending(true);
        mapRenderer.render(mapLayersBackground2);
    }

    batch.begin();
    // Draw enemies.
    for (Enemy enemy : model.enemies) {
        enemy.view.skeleton.getColor().a = Math.min(1, enemy.deathTimer / Enemy.fadeTime);
        skeletonRenderer.draw(batch, enemy.view.skeleton);
    }
    // Draw player.
    if (player.collisionTimer < 0 || (int) (player.collisionTimer / flashTime) % 3 != 0)
        skeletonRenderer.draw(batch, player.view.skeleton);
    batch.end();

    if (ui.bgButton.isChecked()) {
        mapRenderer.setBlending(false);
        mapRenderer.render(mapLayersOpaque3);

        mapRenderer.setBlending(true);
        mapRenderer.render(mapForegroundLayers4);
    }

    batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE);
    batch.begin();

    // Draw bullets.
    TextureRegion bulletRegion = assets.bulletRegion;
    float bulletWidth = bulletRegion.getRegionWidth() * scale;
    float bulletHeight = bulletRegion.getRegionHeight() * scale / 2;
    for (int i = 2, n = model.bullets.size; i < n; i += 5) {
        float x = model.bullets.get(i), y = model.bullets.get(i + 1);
        float angle = model.bullets.get(i + 2);
        float vx = MathUtils.cosDeg(angle);
        float vy = MathUtils.sinDeg(angle);
        // Adjust position so bullet region is drawn with the bullet position in the center of the fireball.
        x -= vx * bulletWidth * 0.65f;
        y -= vy * bulletWidth * 0.65f;
        x += vy * bulletHeight / 2;
        y += -vx * bulletHeight / 2;
        batch.draw(bulletRegion, x, y, 0, 0, bulletWidth, bulletHeight, 1, 1, angle);
    }

    // Draw hit markers.
    TextureRegion hitRegion = assets.hitRegion;
    Color color = batch.getColor().set(1, 1, 1, 1);
    float hitWidth = hitRegion.getRegionWidth() * scale;
    float hitHeight = hitRegion.getRegionWidth() * scale;
    for (int i = hits.size - 4; i >= 0; i -= 4) {
        float time = hits.get(i);
        float x = hits.get(i + 1);
        float y = hits.get(i + 2);
        float angle = hits.get(i + 3);
        color.a = time / bulletHitTime;
        batch.setColor(color);
        float vx = MathUtils.cosDeg(angle);
        float vy = MathUtils.sinDeg(angle);
        // Adjust position so bullet region is drawn with the bullet position in the center of the fireball.
        x += vy * bulletHeight * 0.2f;
        y += -vx * bulletHeight * 0.2f;
        batch.draw(hitRegion, x - hitWidth / 2, y, hitWidth / 2, 0, hitWidth, hitHeight, 1, 1, angle);
    }
    batch.setColor(Color.WHITE);

    batch.end();
    batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    if (ui.bgButton.isChecked())
        mapRenderer.render(mapForegroundLayers5);

    ui.render();
}

From source file:com.gamejolt.mikykr5.ceidecpong.GameCore.java

License:Open Source License

@Override
public void create() {
    AsyncAssetLoader loader = AsyncAssetLoader.getInstance();

    // Set up rendering fields and settings.
    ShaderProgram.pedantic = false; // Not passing all variables to a shader will not close the game.
    batch = new SpriteBatch();
    batch.enableBlending();//from  w  w  w  . j  a v  a 2s . c  o m
    batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    pixelPerfectCamera = new OrthographicCamera(Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

    // Prepare the fading effect.
    Pixmap pixmap = new Pixmap(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), Format.RGBA4444);
    pixmap.setColor(0, 0, 0, 1);
    pixmap.fill();
    fadeTexture = new Texture(pixmap);
    pixmap.dispose();

    // Create the initial interpolators and start with a fade in effect.
    alpha = new MutableFloat(1.0f);
    fadeOut = Tween.to(alpha, 0, 0.5f).target(1.0f).ease(TweenEquations.easeInQuint);
    fadeIn = Tween.to(alpha, 0, 2.5f).target(0.0f).ease(TweenEquations.easeInQuint);
    fadeIn.start();
    fading = true;

    // Create application states.
    states = new BaseState[game_states_t.getNumStates()];

    try {
        states[game_states_t.LOGO_SCREEN.getValue()] = new LogoScreenState(this);
        states[game_states_t.MAIN_MENU.getValue()] = new MainMenuState(this);
        states[game_states_t.IN_GAME.getValue()] = new InGameState(this);
        states[game_states_t.LOADING.getValue()] = new LoadingState(this);
        states[game_states_t.QUIT.getValue()] = null;
    } catch (IllegalArgumentException e) {
        Gdx.app.error(TAG, CLASS_NAME + ".create(): Illegal argument caught creating states: ", e);
        System.exit(1);
        return;
    }

    // Register every state as an AssetsLoadedListener if the state implements the interface.
    for (BaseState state : states) {
        if (state != null && state instanceof AssetsLoadedListener)
            loader.addListener((AssetsLoadedListener) state);
    }
    AsyncAssetLoader.freeInstance();
    loader = null;

    // Set the initial current and next states.
    currState = game_states_t.LOGO_SCREEN;
    nextState = null;
    this.setScreen(states[currState.getValue()]);

    // Set log level
    if (ProjectConstants.DEBUG) {
        Gdx.app.setLogLevel(Application.LOG_DEBUG);
    } else {
        Gdx.app.setLogLevel(Application.LOG_NONE);
    }
}

From source file:com.github.fauu.helix.core.GeneralShader.java

License:Open Source License

@Override
public void begin(Camera camera, RenderContext context) {
    this.camera = camera;
    this.context = context;

    program.begin();/*from  w w w.j a va  2 s.c o  m*/
    program.setUniformMatrix(u_projTrans, camera.combined);

    context.setBlending(true, GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
    context.setCullFace(GL20.GL_BACK);
    context.setDepthTest(GL20.GL_LEQUAL, 0, 1);
    context.setDepthMask(true);
}

From source file:com.github.fauu.helix.core.Object.java

License:Open Source License

public Object(Vector2 position, String modelName, Model model, int elevation, Direction facing) {
    this.position = position;
    this.elevation = elevation;
    this.modelInstance = new ModelInstance(model);
    this.modelName = modelName;
    this.facing = facing;

    modelInstance.transform.setToTranslation(position.x, elevation, position.y + 1).rotate(new Vector3(0, 1, 0),
            -90);//from   ww  w .  ja v  a  2 s . com

    final TextureAttribute textureAttribute = (TextureAttribute) modelInstance.materials.first()
            .get(TextureAttribute.Diffuse);
    textureAttribute.textureDescription.magFilter = Texture.TextureFilter.Nearest;
    textureAttribute.textureDescription.minFilter = Texture.TextureFilter.Nearest;
    modelInstance.materials.first().set(textureAttribute);

    modelInstance.materials.first().set(new ColorAttribute(ColorAttribute.createDiffuse(Color.WHITE)));
    modelInstance.materials.first().set(new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA));
    //modelInstance.materials.first().set(new FloatAttribute(FloatAttribute.AlphaTest, 0.14f));
}

From source file:com.github.fauu.helix.core.Renderer.java

License:Open Source License

public void render(Camera camera, Array<RenderableProvider> renderableProviders, Array<Decal> decals) {
    final GL20 gl = Gdx.graphics.getGL20();

    gl.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    gl.glClearColor(0.1f, 0.1f, 0.1f, 1);
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
    gl.glEnable(GL20.GL_BLEND);// w  ww. j a  v a2 s . c o  m
    gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    if (decalBatch == null) {
        defaultCameraGroupStrategy = new CameraGroupStrategy(camera);
        waterCameraGroupStrategy = new CameraGroupStrategy(waterCamera);

        decalBatch = new DecalBatch(defaultCameraGroupStrategy);
    }

    //waterCamera.moveTo(new Vector2(13, 19));
    /* Render objects to framebuffer */
    fb.begin();
    gl.glClearColor(0, 0, 0, 0);
    gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
    gl.glEnable(GL20.GL_BLEND);
    gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    renderContext.begin();
    modelBatch.begin(waterCamera);
    for (int i = 1; i < renderableProviders.size - 1; i++) {
        modelBatch.render(renderableProviders.get(i));
    }
    modelBatch.end();
    renderContext.end();

    decalBatch.setGroupStrategy(waterCameraGroupStrategy);
    if (decals != null) {
        decals.first().rotateX(50);
        decalBatch.add(decals.first());
        decalBatch.flush();
        decals.first().rotateX(-50);
    }

    //    Vector3 waterPos = waterCamera.project(new Vector3(8, 0, 19));
    //    reflectionPixmap = ScreenUtils.getFrameBufferPixmap((int) waterPos.x, (int) waterPos.y, 348, 261);
    //    reflectionPixmap = ScreenUtils.getFrameBufferPixmap(0, 0, 800, 600);

    fb.end();

    //    if (reflectionTexture == null) {
    //      reflectionTexture = new Texture(reflectionPixmap);
    //    } else {
    //      reflectionTexture.draw(reflectionPixmap, 0, 0);
    //    }

    ((WaterData) ((ModelInstance) renderableProviders
            .get(renderableProviders.size - 1)).userData).reflectionTexture = fb.getColorBufferTexture();

    /* Render objects and terrain to the screen */
    renderContext.begin();
    modelBatch.begin(camera);
    modelBatch.render(renderableProviders);
    modelBatch.end();
    renderContext.end();
    decalBatch.setGroupStrategy(defaultCameraGroupStrategy);
    if (decals != null) {
        decalBatch.add(decals.first());
    }
    decalBatch.flush();

    spriteBatch.begin();
    spriteBatch.enableBlending();
    spriteBatch.draw(fb.getColorBufferTexture(), 0, 0, 800, 600);
    spriteBatch.end();

}

From source file:com.github.fauu.helix.displayable.AreaDisplayable.java

License:Open Source License

public AreaDisplayable(Model model) {
    instance = new ModelInstance(model);

    animationController = new AnimationController(instance);

    instance.transform.rotate(new Vector3(1, 0, 0), 90);

    for (Material material : instance.materials) {
        TextureAttribute ta = (TextureAttribute) material.get(TextureAttribute.Diffuse);

        ta.textureDescription.magFilter = Texture.TextureFilter.Nearest;
        ta.textureDescription.minFilter = Texture.TextureFilter.Nearest;

        material.set(ta);/*w w w . ja  va2s .  c o m*/
        material.set(ColorAttribute.createDiffuse(Color.WHITE));

        BlendingAttribute ba = new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

        material.set(ba);
    }
}

From source file:com.github.fauu.helix.displayable.CharacterDisplayable.java

License:Open Source License

public CharacterDisplayable(IntVector3 logicalPosition, String animationSetName, TextureRegion shadowTexture) {
    super(logicalPosition.toVector3().add(DEFAULT_DISPLACEMENT));

    animations = new AnimationSet(animationSetName);

    AnimatedDecal decal = AnimatedDecal.newAnimatedDecal(DEFAULT_DIMENSIONS.x, DEFAULT_DIMENSIONS.y,
            animations.getDefault(), true);

    decal.setKeepSize(true);//w  w  w  . ja  v  a 2s .  c o  m
    decal.setPosition(position);
    decal.rotateX(DEFAULT_ROTATION);

    setMainDecal(decal);

    Decal shadow = new Decal();

    shadow.setPosition(position);
    shadow.translate(DEFAULT_SHADOW_DISPLACEMENT);
    shadow.setDimensions(DEFAULT_SHADOW_DIMENSIONS.x, DEFAULT_SHADOW_DIMENSIONS.y);
    shadow.setColor(1, 1, 1, .35f);
    shadow.setTextureRegion(shadowTexture);
    shadow.setBlending(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);

    setShadowDecal(shadow);
}

From source file:com.github.fauu.helix.editor.displayable.TileHighlightDisplayable.java

License:Open Source License

public TileHighlightDisplayable() {
    ModelBuilder modelBuilder = new ModelBuilder();

    Model model = modelBuilder.createRect(0, 0, Z_OFFSET, 1, 0, Z_OFFSET, 1, 1, Z_OFFSET, 0, 1, Z_OFFSET, 0, 0,
            1, GL20.GL_TRIANGLES,/*  w  ww . j  a  va 2  s .  c  om*/
            new Material(new ColorAttribute(ColorAttribute.createDiffuse(color)),
                    new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)),
            VertexAttributes.Usage.Position | VertexAttributes.Usage.TextureCoordinates);

    instance = new ModelInstance(model);
}