我正在使用 libgdx 来创建一些程序。我需要在帧缓冲区中使用一些操作。对于此操作,我创建了新的帧缓冲区,在此操作之后,我在帧缓冲区 dispose() 中调用。当我创建帧缓冲区 10 次时,我的崩溃程序出现错误:无法构造帧缓冲区:尺寸不完整。我在代码 libgdx 中看到,这是帧缓冲区的 GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 状态。为什么会这样?我必须做些什么来解决这个问题?
代码:
if(maskBufferer != null){
maskBufferer.dispose();
}
maskBufferer = new FrameBuffer(Pixmap.Format.RGBA8888, width, height, true);
mask = createMaskImageMask(aspectRatioCrop, maskBufferer);
...
private Texture createMaskImageMask(boolean aspectRatioCrop, FrameBuffer maskBufferer) {
maskBufferer.begin();
Gdx.gl.glClearColor(COLOR_FOR_MASK, COLOR_FOR_MASK, COLOR_FOR_MASK, ALPHA_FOR_MASK);
Gdx.graphics.getGL20().glClear(GL20.GL_COLOR_BUFFER_BIT);
float[] coord = null;
...
PolygonRegion polyReg = new PolygonRegion( new TextureRegion(new Texture(Gdx.files.internal(texturePolygon)) ),
coord);
PolygonSprite poly = new PolygonSprite(polyReg);
PolygonSpriteBatch polyBatch = new PolygonSpriteBatch();
polyBatch.begin();
poly.draw(polyBatch);
polyBatch.end();
maskBufferer.end();
return maskBufferer.getColorBufferTexture();
}