Folks have really reacted to my mention of manual rendering, so I’ve made a sample for it. Good thing, too, because to be frank there are a few warts. On the upside, however, it is possible to work around all of them and the code required is not too scary.
In this sample, I host a GlobeControl on a form like normal, but instead of using the built-in render thread I render on the UI thread using the manual render API. If you are content to let WinForms present to the screen for you, you’re done at this point.
But it is common in these situations to want to get the rendered surface to make a movie, present in some other context like WPF, etc. I include an example of the most basic way to do this, which is the only official way to currently do it (WorldEngine.CaptureScreenShot). If this isn’t good enough, and you’re a bit more daring, it is possible to get our rendering surface and do more clever things with it. That’s what the good folks at Infostrat did for their WPF code, and for the time being I actually recommend using their wrapper if you want to use WPF.
I’ve labelled all the warts and their workarounds with the tag “WORKAROUND” in the code so you can look more closely if you like, but you should also just be able to copy and paste the sample and get your code to work as it should. Also, this is not actually an an official part of the sample pack, but something similar to it will be.