spriteBatch を textureに保存できるかどうかを知りたいです。
SpriteBatch batch = new SpriteBatch();
batch 内にいくつかのものを描画した後、SpriteBatch を含むすべてのものを 1 つのテクスチャ(スクリーンショットのようなもの)に保存したいと思います。
Web と libgdx doc で検索しましたが、見つかりませんでした。
ありがとうございます
spriteBatch を textureに保存できるかどうかを知りたいです。
SpriteBatch batch = new SpriteBatch();
batch 内にいくつかのものを描画した後、SpriteBatch を含むすべてのものを 1 つのテクスチャ(スクリーンショットのようなもの)に保存したいと思います。
Web と libgdx doc で検索しましたが、見つかりませんでした。
ありがとうございます
FrameBufferObject
(FBO)にレンダリングできます。https://github.com/mattdesl/lwjgl-basics/wiki/FrameBufferObjectsを参照してください。
FBO は、事前にテクスチャにレンダリングする決定を下しても問題ない場合に機能します。副作用の 1 つは、イメージが画面にレンダリングされず、テクスチャにのみレンダリングされることです。(もちろん、後でテクスチャを画面にレンダリングするのは簡単です)。
他の回答が示唆しているように、画面バッファーからバイトを削り取り、Texture
結果からa を作成Pixmap
できます (ファイルシステムまでずっと行く必要はありません)。https://code.google.com/p/libgdx-users/wiki/Screenshotsを参照してください(getScreenshot
メソッドを使用しPixmap
てバイトを取得するだけです)。
次のようにテクスチャへの変換を使用します。
final Pixmap pmap = new Pixmap(bytes, 0, bytes.length);
try{
Gdx.app.postRunnable(new Runnable(){
public void run(){
texture=new Texture(pmap);
}
});
}catch(Exception e){
e.printStackTrace();
}