List of usage examples for com.badlogic.gdx.graphics GL20 GL_ONE_MINUS_SRC_ALPHA
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
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//www . j a v a2 s . c om */ 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;/* ww w . j av a 2s. 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.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 a 2 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.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 www. j av a 2 s . c om 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();/*from w w w . j a va 2s.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();/* w w w . j a v a2 s .co 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);//w ww. ja va 2s. 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.screens.GameOver.java
License:Apache License
@Override public void draw(float delta) { Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); viewMatrix.setToOrtho2D(0, 0, 480, 320); spriteBatch.setProjectionMatrix(viewMatrix); spriteBatch.setTransformMatrix(transformMatrix); spriteBatch.begin();/*from www . j a v a 2s .c o m*/ spriteBatch.disableBlending(); spriteBatch.setColor(Color.WHITE); spriteBatch.draw(background, 0, 0, 480, 320, 0, 0, 512, 512, false, false); spriteBatch.enableBlending(); spriteBatch.draw(logo, 0, 320 - 128, 480, 128, 0, 256, 512, 256, false, false); String text = "It is the end my friend.\nTouch to continue!"; TextBounds bounds = font.getMultiLineBounds(text); spriteBatch.setBlendFunction(GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA); font.drawMultiLine(spriteBatch, text, 0, 160 + bounds.height / 2, 480, HAlignment.CENTER); spriteBatch.end(); }
From source file:com.badlogic.invaders.screens.MainMenu.java
License:Apache License
@Override public void draw(float delta) { Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); viewMatrix.setToOrtho2D(0, 0, 480, 320); spriteBatch.setProjectionMatrix(viewMatrix); spriteBatch.setTransformMatrix(transformMatrix); spriteBatch.begin();//from w w w .ja v a2s . co m spriteBatch.disableBlending(); spriteBatch.setColor(Color.WHITE); spriteBatch.draw(background, 0, 0, 480, 320, 0, 0, 512, 512, false, false); spriteBatch.enableBlending(); spriteBatch.draw(logo, 0, 320 - 128, 480, 128, 0, 0, 512, 256, false, false); spriteBatch.setBlendFunction(GL20.GL_ONE, GL20.GL_ONE_MINUS_SRC_ALPHA); String text = "Touch screen to start!"; float width = font.getBounds(text).width; font.draw(spriteBatch, text, 240 - width / 2, 128); if (Gdx.app.getType() == ApplicationType.WebGL) { text = "Press Enter for Fullscreen Mode"; width = font.getBounds(text).width; font.draw(spriteBatch, "Press Enter for Fullscreen Mode", 240 - width / 2, 128 - font.getLineHeight()); } spriteBatch.end(); }
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 . ja va 2 s . c o 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)); } }