2016-10-10 8 views
-1

私は、getColorBufferTexture()メソッドを介してFrameBufferからすぐに来るテクスチャを持っています。テクスチャはうまくいきますが、垂直に反転しても問題はなく、バッチで問題なく描画できます。テクスチャからピックスマップを取得しようとしてエラーが発生しました(libGDX)

私はさらなる使用のためにそれを保存したいので、私はPixmapPackerに追加しようとしていますが、私は「ピックスマップを返さないこのTextureData実装は」私はどのように知っていないという例外を取得しています克服する。

これはクラッシュに関与コードです:ご覧のように、「それゆえ(私が最初)(準備を呼び出す試みたが、それはテクスチャが常にこの時点で準備されて判明

if (!frameBuffer.getColorBufferTexture().getTextureData().isPrepared()) 
     frameBuffer.getColorBufferTexture().getTextureData().prepare(); 
    packer.pack("panel_cells", frameBuffer.getColorBufferTexture().getTextureData().consumePixmap()); 

「最初」の場合)、それは問題ではありません。とにかく私はちょうど場合のためにコードのそれらの2行を残しました...

ありがとうございます!

答えて

0

フレームバッファを作成するときに、私はオーバーライド、以下の方法により、この問題を最終的に解決してきたようだ:

FrameBuffer frameBuffer = new FrameBuffer(Pixmap.Format.RGBA8888, bufferSize, bufferSize, false) { 
     @Override 
     protected Texture createColorTexture() { 
      PixmapTextureData data = new PixmapTextureData(new Pixmap(width, height, format), format, false, false); 
      Texture result = new Texture(data); 
      result.setFilter(Texture.TextureFilter.Linear, Texture.TextureFilter.Linear); 
      result.setWrap(Texture.TextureWrap.ClampToEdge, Texture.TextureWrap.ClampToEdge); 
      return result; 
     } 
    }; 

は、今私はパッカーとの問題を抱えていますが、それは別の話だ...少なくとも私テクスチャを得ることができます。

+0

これは実際には機能しません。私は例外を取り除きましたが、consumePixmap()メソッドは期待どおりに動作していないようです:frameBuffer.getColorBufferTextureが返すテクスチャはうまくいきますが、新しいTexture(frameBuffer.getColorBufferTexture().getTextureData().conumePixmap ())あなたは明らかに空のテクスチャで終わってしまいます。それは全く意味がなく、とにかく役に立たないのです。 –

関連する問題