Proce55dl
pixelsを移植しようと思い、GLを調べたらバックバッファのアドレスとってこれねぇでやんの。
Ω ΩΩ<な、なんだって?
でもglReadPixelsとglDrawPixelsによって移植できそうな気がしてきたのでそれで移植するも、
- pixelの並びがDWORDだと0xaabbggrrになっている
- glDrawPixelsすると半分くらい暗くなる
- 激しく重い
という3つの罠にはまる。あーん?
レンダリングターゲットをテクスチャにしてテクスチャのpixelを処理すれば軽くなったりするかも。
ならないかも。
特に2番目の暗くなるのが激しく意味がわからない。重くてもうごきゃOKなんだよぅ!
が、昔同じような状態になったのを思い出した。
glBindTexture( GL_TEXTURE_2D, 0 );
魔法のおまじないっすね。ここまで来ると。嘘。
よく考えたらTextureを使った後すぐにクリアすればいいことに今更気が付いた。
pixelsはProce55ingの肝だと思うのでここは是非なんとかしたい。
それから今までメッセージとは別スレッドでメインループを回していたんですけど、それだとメインループ時にマウスのメッセージを取り逃すことがあったりして腹が経ってきたのでメインループの直前でマウスの状態を無理クリ取得するようにした。
なんだか別スレッドにする意味が薄れてきているが、なんかメリットもあった気がするのでそのままで。
それからbackgroundをしないサンプルとかだとビデオカードによってはチラチラしたりするのでちゃんと
挙動を調べないといけない気がしてきた。
そもそも必ずSwapはしてるのにClearしてない上にダブルバッファだとbackgroundしない時のバッファの状態なんて保証されてないだろうし、前フレのサーフェスが使われていたらおかしくなるに決まっているのにじゃぁなんで今の環境だと大丈夫なんだ。ダブルバッファになってない?
ちゃんと調べないと駄目ですね。
ああ、完成が一歩ずつ遠のいていく。。
こんなことならGLをちゃんとやっておくんだった。