public void CanSwitchBetweenRenderWindowsWhenRenderingIsDoneInAControl()
{
using (var form = new Form())
{
form.ClientSize = new Size(1024, 760);
var button = new Button { Size = new Size(800, 600), Top = 112, Left = 80, Parent = form };
IntPtr handle = button.Handle;
IRenderWindow renderWindow = new XnaRenderWindow(handle);
button.KeyPress +=
delegate(object sender, KeyPressEventArgs args)
{
if (args.KeyChar == 'p')
{
renderWindow.TakeScreenshot("test.bmp");
}
else if (args.KeyChar == 's')
{
if (renderWindow is XnaRenderWindow)
{
renderWindow.Dispose();
renderWindow = new SlimDXRenderWindow(handle);
}
else
{
renderWindow.Dispose();
renderWindow = new XnaRenderWindow(handle);
}
}
};
Application.Idle +=
delegate
{
renderWindow.Render();
Application.DoEvents();
};
Application.Run(form);
if (renderWindow != null)
{
renderWindow.Dispose();
}
}
}