public void Run(Control[] clients, BackgroundWorker worker) { CreateDeviceAndMultiSwapChain(clients); LoadCommonContent(worker); foreach (var rt in m_RenderTargets) { rt.LoadContent(m_CommonContents); } m_parentWorker = worker; SlimDX.Windows.MessagePump.Run(RenderTargetContents.GetParentForm(clients[0]), Draw); m_parentWorker = null; Dispose(); }
private void CreateDeviceAndMultiSwapChain(Control[] controls) { m_RenderTargets = new RenderTargetContents[controls.Length]; SwapChain tmp_Swap; CreateDeviceAndSwapChain(controls[0], out tmp_Swap); //m_RenderTargets[0] = new RenderTargetContents(m_Device, tmp_Swap, controls[0]); m_RenderTargets[0] = new RenderTargetContentsUV(m_Device, tmp_Swap, controls[0]); Factory factory = m_Device.Factory; for (int i = 1; i < controls.Length; i++) { tmp_Swap = new SwapChain(factory, m_Device, DefaultSwapChainDescription(controls[i])); m_RenderTargets[i] = new RenderTargetContents(m_Device, tmp_Swap, controls[i]); } }