OpenGL は基本的にこのようには機能しません。レンダリングしているフレームは、基本的にピクセルの 2 次元配列です。画像を描画すると、それらのピクセルの一部の値が変更され、画像が作成されます。何かが描かれると、それをクリアするまでそこにとどまります。OpenGL は、過去にレンダリングしたものを追跡しないため (フレームを塗りつぶすピクセルを除く)、現在レンダリングしている三角形/線以外の変換を行うことはできません。
draw メソッドの開始時に、フレームをクリアします (すべてのピクセルをクリア カラーにリセットします)。その後、オブジェクトを再描画する必要があります。これが OpenGL の仕組みであり、非常に高速です。最新の GPU では、フレームごとに何百万もの三角形を描画しても、60fps を維持できます。最初にフレームをクリアしないと、古いフレームの上に画像が描画され、鏡のホールのような効果が得られます。
パフォーマンスが問題になる場合は、より最新の OpenGL を学習することを検討してください。現在使用しているのは、1992 年に OpenGL 1.0 仕様の一部であったイミディエイト モード OpenGL です。1997 年に OpenGL 1.1 で頂点配列が導入されました。これにより、メソッド呼び出しが 1 つしかないため、大量の頂点の速度が大幅に向上します。頂点ごとに 1 つのメソッドを呼び出すのではなく、すべての頂点に対して。そして、OpenGL の新しいバージョンごとに、より最適化された描画方法が提供されます。