Я работаю над написанием пользовательского интерфейса JWindow с OpenGL с помощью libgdx. По какой-то причине мое приложение по-прежнему имеет черный фон даже после включения GL20.GL_BLEND
.libgdx Transparent Overlay
Вот мой код:
package com.mygdx.game;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.utils.viewport.FitViewport;
public class MyGdxGame extends ApplicationAdapter {
Stage stage;
SpriteBatch batch;
ShapeRenderer shapeRenderer;
@Override
public void create() {
stage = new Stage(new FitViewport(2560, 1440));
batch = new SpriteBatch();
shapeRenderer = new ShapeRenderer();
shapeRenderer.setAutoShapeType(true);
}
@Override
public void render() {
Gdx.gl.glEnable(GL20.GL_BLEND);
Gdx.gl.glBlendFunc(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
Gdx.gl.glClearColor(0, 0, 0, .25f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
shapeRenderer.setColor(Color.RED);
shapeRenderer.rect(100, 25, 200, 450);
shapeRenderer.set(ShapeRenderer.ShapeType.Filled);
shapeRenderer.setColor(Color.GREEN);
shapeRenderer.rect(303, 24, 10, 451);
shapeRenderer.end();
batch.end();
Gdx.gl.glDisable(GL20.GL_BLEND);
}
@Override
public void resize(int width, int height) {
stage.getViewport().update(width, height, true);
}
@Override
public void dispose() {
stage.dispose();
batch.dispose();
shapeRenderer.dispose();
}
}
Я нашел нить кого-то просят то же самое, но в C (How to make an OpenGL rendering context with transparent background?). Я даже попытался добавить LwglAWTCanvas в JWindow, но я все еще не могу сделать фон прозрачным.
Я хотел бы иметь четкий фон, чтобы я мог рисовать прямоугольники/фигуры на экране пользователей.
Спасибо!
Возможный дубликат [Как сделать контекст OpenGL рендеринга с прозрачным фоном] (http://stackoverflow.com/questions/4052940/how-to-make-an-opengl-rendering-context-with-transparent-background) – pleluron
Не совсем дубликат, так как это не родной язык. –
Вот что я хотел указать. В java нет ответа, см. [This] (http://stackoverflow.com/questions/10276020/lwjgl-window-with-transparent-background). – pleluron