가장 효과적인 방법으로 스크린 샷을 찍으려고합니다. frameBuffer를 사용하는 것은 스레드를 렌더링하는 것과는 다른 스레드에서 데이터를 처리 할 수 있기 때문에 스크린 샷을 찍는 가장 효율적인 방법입니다. 어떻게 FrameBUffer에서 정보를 가져 와서 파일로 전송할 수 있습니까?FrameBuffer가 libgdx 또는 OpenGL 내부에 파일로 저장됩니다.
FrameBuffer m_fbo;
render(){
m_fbo = new FrameBuffer(Format.RGB565, (int)(w * m_fboScaler), (int)(h * m_fboScaler), false);
m_fboRegion = new TextureRegion(m_fbo.getColorBufferTexture());
m_fboRegion.flip(false, true);
m_fbo.begin();
...rendering...
m_fbo.end();
writeTextureRegionToFile(); - i need some lines of code for the implementation of this method
}
"여전히 렌더링 스레드에서 OpenGL API를 사용하여 해당 바이트를 가져와야합니다."- fps가 6으로 떨어짐으로써.이 작업이 별도의 스레드에서 수행 될 수 있다면 유용 할 것입니다. – Lunatikul
Libgdx (및 LWJGL 밑)는 단일 스레드가 OpenGL 호출을 할 수 있도록 허용하기 때문에 렌더링 스레드에서 꺼내기를 기대하지는 않습니다. –