现在我有一个用c++/cli编写的封装器,它被用在c#(WPF)中。这个封装器将本地c++图形引擎封装为能够理解的c#代码。但这不是问题(等一下……)。所以在WPF中,我有一个Windows控件(是的,这是可能的),我从中接收句柄(HWND)。所有这些都很好,并且帧正在渲染,唯一的问题是性能。渲染按照以下方式触发:
...
System.Windows.Media.CompositionTarget.Rendering += new EventHandler(Render);
}
private void Render(Object sender, EventArgs e)
{
EngineWrapper.RenderFrame();
}
所以fps非常低,这意味着对Render()的调用速率非常低(因为我的应用程序最初是在MFC中,帧速率要高得多!)。所以我想问你,有什么方法可以提高它吗?一种新的方式,另一个线程?(一定有办法……)
编辑: 我是通过以下方式创建Windows控件的:
System.Windows.Forms.Integration.WindowsFormsHost host =
new System.Windows.Forms.Integration.WindowsFormsHost();
System.Windows.Forms.Panel panel = new System.Windows.Forms.Panel();
host.Child = panel;
this.RenderCamera_WorkareaGrid.Children.Add(host);
Thank You