OpenGL レンダリング シーンの上にグラフィックスをオーバーレイしようとしています。
なんとか起動して実行しましたが、FPS の低下がやや大きすぎます。
私は現在GLSceneをGraphics32と組み合わせて使用しています。
GLScene Rendering Context をビットマップにレンダリングし、そのビットマップを TImageView32 に適用し、TImage32 内でいくつかの最終的な UI タッチを行います。
ビットマップにレンダリングするために使用しているコードは次のとおりです。これにより、FPS も低下します。
procedure RenderToBitmap;
var b: TBitmap;
begin
b:=TBitmap.Create;
b:=GLSceneViewer.Buffer.CreateSnapShotBitmap; //TGLSceneViewer
ImgVwr32.Bitmap.Assign(b); //TImageViewer32
b.Free;
end;
リアルタイム レンダリングを可能にする他のコード (以下を参照) を試しましたが、ImageViewer32 の「ビットマップ」プロパティを変更できません。つまり、GLScene レンダリング コンテキストはレンダリングされていますが、自分のグラフィックスはレンダリングされていません。コード:
//The following line is put inside the FormCreate call
GLSceneViewer.Buffer.CreateRC(GetDC(ImgVwr32.Handle),false);
FPS を失わずに、レンダリング コンテキストの上にグラフィックスを適切にオーバーレイしたり、レンダリング コンテキストの出力をコピーしたりするにはどうすればよいですか?