我在C#中使用sharpdx以多种形式呈现DirectX 11场景。 只要表单没有MdiParent,渲染就会起作用。我将父表单设置为MdiParent时,他们不再显示已呈现的内容,并且在调整大小时不会刷新(请参阅图像的下半部分)。
顶部是以多种形式渲染,底部部分采用MdiParent设置相同的形式:
初始化函数中代码的差异:
ParentForm.IsMdiContainer = true;
以及稍后的每个子表单MdiParent = ParentForm
ParentForm的初始化
ParentForm = new RenderForm();
ParentForm.IsMdiContainer = true;
ParentForm.Show();
MdiChilds的初始化
for (int i = 0; i < 2; i++) {
ProjectorForm projectorForm = new ProjectorForm(device) {
ClientSize = new Size(Configuration.Width, Configuration.Height),
MdiParent = ParentForm,
};
projectorForm.Show();
ProjectorViews.Add(projectorForm);
}
render方法在一个线程中运行,并循环遍历每个表单呈现方法。