プログラムを作成するために、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();
}