gpt4 book ai didi

java - 将 Texture 转换为 FrameBuffer 并返回

转载 作者:行者123 更新时间:2023-11-30 10:52:26 26 4
gpt4 key购买 nike

我在 Android 上的 LibGDX 中尝试将文本绘制到 Texture 上时遇到错误。我目前正在加载 Texture,创建 FrameBuffer,使用 Texture 绘制到 FrameBuffer 上SpriteBatch,然后从 FrameBuffer 中抓取纹理数据,转回 Texture。我还没有字体绘制设置(它也将使用 SpriteBatch,绘制到 FrameBuffer,但我稍后会这样做。)

这是我的代码:

private static FrameBuffer fbo;
private static SpriteBatch batch;

public static SpriteDrawable getTextureWithText(String text) {
try {
Texture texture = new Texture(Gdx.files.internal("image.png"));
fbo = new FrameBuffer(Format.RGBA8888, texture.getWidth(), texture.getHeight(), false);

fbo.begin();
Gdx.gl.glClearColor(0f, 0f, 0f, 0f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

batch.begin();

batch.draw(texture, 0, 0, texture.getWidth(), texture.getHeight());
// Here I would render text too,
// however I have not yet attempted this as the
// converting to and from an FBO will not work.

batch.end();

fbo.end();

texture = fbo.getColorBufferTexture();
return new SpriteDrawable(new Sprite(texture));
} catch (Exception e) {
e.printStackTrace();
}
}

但是,在我在 LibGDX 中的多屏幕项目中,我的应用程序不会超出初始屏幕移动到包含 LibGDX Image 对象的屏幕上。 LogCat中反复出现如下错误:

12-16 19:02:25.623 20311-20349/uk.jamco.application.android W/Adreno-EGLSUB: <SwapBuffers:1352>: Invalid native buffer. Failed to queueBuffer
12-16 19:02:25.623 20311-20356/uk.jamco.application.android W/Adreno-EGLSUB: <updater_thread:428>: native buffer is NULL

这里有人可以帮我解决我的问题吗?提前致谢!

最佳答案

我设法解决了我自己的问题。我没有初始化 SpriteBatch 对象,这导致了看似无关的错误。很抱歉浪费任何人的时间,如果他们读到这篇文章,但我现在将关闭这个问题。

关于java - 将 Texture 转换为 FrameBuffer 并返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34339785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com