2011-06-23 15 views
0

私はC++とOpen GLを使用してペイントのようなアプリケーションを開発しています。しかし、私はサークル、ラインなどのようなオブジェクトを描画するたびに、**ページに**滞在**しません。これによって、私が描くすべての新しいオブジェクトが空白のページに置かれることを意味します。描画されたオブジェクトを永続させるにはどうすればよいですか?Open GLで静的に描画

+0

開発中のプラットフォームと使用しているツール(IDE/SDK)。 – Perception

+0

ページオブジェクト/ apiは何ですか?あなたの描画コードは何ですか? – whooops

答えて

3

OpenGLにはジオメトリの永続性がありません。基本的には鉛筆、ブラシ、ペイントで、これを使って "フレームバッファ"と呼ばれるキャンバスに描画します。だからあなたが何かを描き、フレームバッファをクリアした後、それはいくつかの魔法のように再現されません。

2つの解決策があります。

  • あなたはすべての描画操作のリストを保持し、それぞれにあなたがそのリストからすべてを再描画再描画が。

  • 何かを描画した後、フレームバッファ内のイメージをテクスチャにコピーし、glClearではなくそのテクスチャで背景を塗りつぶします。

両方の技術を組み合わせることができます。

1

フレームバッファをクリアしないだけで、描画したものは画面に残ります。これは、ユーザーが自分のOpenGLモデルに描画するのと同じ方法です。これは、イメージのマークアップにのみ有効です。このメソッドを使用すると、消去方法が背景色を使用して描画されない限り、描画したものを消去することができないからです。

+0

これはダブルバッファリングでは機能しません。 –

+0

いいえ、これはダブルバッファリングでは機能しません。私は主にiPhone/iPadで動作しますが、これは問題ではありません。 – Davido

+0

私はLinuxでC++でopenglを使用しています – afom

関連する問題