我正在尝试在我的 OpenGL 渲染场景之上叠加图形。
我已经设法让它启动并运行,但 FPS 的下降有点太多了。
我目前正在将 GLScene 与 Graphics32 结合使用。
我所做的是将 GLScene 渲染上下文渲染到位图,将该位图应用到 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?