Javaゲーム作成総合スレat GAMEDEVJavaゲーム作成総合スレ - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト167:名前は開発中のものです。 09/01/08 04:06:29 IHwS1EtB >>163 じゃJOGLでおkなことを長々と語ってくれないか? おまえみたいな無能じゃ無理かw JOGLていうよりもOpenGLすら使ったことないんだろうww 168:名前は開発中のものです。 09/01/08 07:19:56 4pdEl9iG >>154 自前のCompositeを使うと、内部でGeneralCompositePipeという物が使われる。 sun.java2d.pipe.GeneralCompositePipeの88-89行目を見ると、 dstIn = dstRaster.createChild(x, y, w, h, 0, 0, null); dstOut = dstIn.createCompatibleWritableRaster(); となっている。この時確保されるdstOutのサイズはw×hではなくて、dstRasterと同じサイズになる。 (java.awt.image.Rasterのソースを参照) 多分開発者は、createCompatibleWritableRaster(w,h);と同じ結果を期待していたんだと思う。 そのせいで、大量のメモリの確保を何度も行う事になる。何度も。 しかも、大きい図形は内部で32×32に分割して描画しているからメモリを確保する回数がさらに増加する。 これではアクセラレーション以前の問題。 どう見てもバグだけど、誰もゲームに使わないからか特に問題にならず、一向に修正されない。 描画に使う一時的なRasterは一々確保せずにキャッシュを使ってほしいけど、面倒だったのか毎回確保してる。 だから、自作Compositeをゲームに使いたいなら、Graphics2Dを使わず自分で処理するのが無難。 英語が得意なら、バグを報告して修正を待つ手もあるけど。 あと、Composite内で使うgetPixels()やsetPixels()も妙に遅い気がする。 sun.awt.image.DataBufferNativeが怪しい。自分の所だけかもしれないけど。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch