Я использую орто-камеру и FitViewport в своем проекте.Libgdx - рендеринг FrameBuffer и FitViewport
В моем методе визуализации() я создать fremeBuffer хранить фактическое состояние моей игры, а затем создать растровое изображение из этого буфера и, наконец, я установил новый шейдер и сделать свой постобработки материал с кадром:
//--- render frame to buffer
screenBuffer.begin();
camera.update();
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(img, 0, 0);
batch.end();
stage.draw();
//--- create pixmap from that buffer
pixmap = ScreenUtils.getFrameBufferPixmap(0, 0,screenBuffer.getWidth(), screenBuffer.getHeight());
batch.flush();
screenBuffer.end();
//--- create texture from pixmap
renderedScreenTexture = new Texture(pixmap);
//--- finally render frame with postprocess shader
camera.update();
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.setShader(monoShader);
batch.setProjectionMatrix(camera.combined);
batch.begin();
batch.draw(renderedScreenTexture, 0,0);
batch.draw(renderedScreenTexture, 0, 0, 640, 320, 0, 0, 640, 320, false, true);
batch.end();
на мой метод изменения размера у меня есть:
viewport.update(width, height);
camera.position.set(camera.viewportWidth/2,camera.viewportHeight/2, 0);
проблема заключается в том, что после изменения размера окна FitViewport doesen't работы. Когда я удаляю создание frameBuffer из метода визуализации, FitViewport отлично работает. Может ли кто-нибудь сказать мне, что не так с моим кодом или целым понятием?