我的纹理通过getColorBufferTexture()方法直接来自FrameBuffer。纹理很好,虽然按预期垂直翻转,我可以批量绘制它没有问题。
我正在尝试将其添加到PixmapPacker,因为我想将其保存以供进一步使用,但我得到一个异常 “此TextureData实现不返回Pixmap” 我不知道如何克服。
这是崩溃中涉及的代码:
if (!frameBuffer.getColorBufferTexture().getTextureData().isPrepared())
frameBuffer.getColorBufferTexture().getTextureData().prepare();
packer.pack("panel_cells", frameBuffer.getColorBufferTexture().getTextureData().consumePixmap());
如你所见,我首先尝试调用prepare(),但事实证明纹理总是在此时准备好(因此首先是“if”),所以这不是问题。无论如何,我已经将这两行代码留在那里以防万一...
提前致谢!
答案 0 :(得分:1)
在创建FrameBuffer时,似乎我终于通过覆盖以下方法解决了这个问题:
FrameBuffer frameBuffer = new FrameBuffer(Pixmap.Format.RGBA8888, bufferSize, bufferSize, false) {
@Override
protected Texture createColorTexture() {
PixmapTextureData data = new PixmapTextureData(new Pixmap(width, height, format), format, false, false);
Texture result = new Texture(data);
result.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear);
result.setWrap(Texture.TextureWrap.ClampToEdge, Texture.TextureWrap.ClampToEdge);
return result;
}
};
现在我遇到了包装工的问题,但这是一个不同的故事......至少我可以得到纹理。