今時、1.0で作るのもどうかとは思うが、テストで作ってるだけだし。
でもソースコードに、
GL10
という記述をしているため、あとでバージョンを上げると、この辺りを全部差し替える作業が発生するな…。
などと思いつつ、背景部分の移植完了。
背景は、良く使う手として、小さい画像をタイル状に敷き詰めて、スクロールさせている。
Canvasを用いた描画では、画像を何枚も並べて描画していたが、GLを用いると、1枚のポリゴンに、UVを設定するだけでいい。
具体的には、u = 0.0 ~ 1.0 とすれば、1枚分が表示されるが、
u = 0.0 ~ 5.0 にすれば、5枚分が表示される。
ところが、パターンが細かい画像を使用したので発覚したのだが、フルスクリーンのうち、数か所がたまにちらついて見える。
これは…いわゆる、ダブルバッファを使わないといけない案件か?
しかし、OpenGL ES1.0には、フレームバッファはなく、
1.1のextensionを使わないといけないらしい。
しかも extensionだから、どの端末でも実装されているという保証はない。
いやまあ、1.0で作ってるのが悪いんだけど。
ところが、だ。
テストを重ねると、どうやら、描画が追い付かずにちらついているわけではないらしい。
スクロールさせるために、uvをそれぞれ、0~1の範囲で動かしているわけだが、
u= 0.184f;
v = 0.816f;
と設定すると、描画が崩れる。
これは…単なる float誤差か?
しかも、全体の一部の描画のときだけ??
面倒くさいのきたー。