Incorporating OpenTK into Scrolling Game Development Kit 2 is going quite nicely. I saw about a 100% performance improvement over DirectX when using large numbers of sprites, presumably due to the fact that sprites and tiles can be transformed by specifying corner points rather than having to change the whole view matrix to include the transformation and the position every time a sprite or tile is drawn.
I can compile and run games based on OpenTK using SGDK2 now. Just waiting for the text drawing implementation. One other question has come up, though. Because the IDE can have multiple GLControl objects active at once, I'm calling MakeCurrent in the paint event of the containing form out of concern that if I called it on every call made to OpenTK there would be some unwanted overhead. Recently that got me into some trouble because there are other events that make calls to OpenTK, namely the resize event of the control. My question is, would it be safe to just call MakeCurrent on every call that comes into my Display object (which is derived from GLControl) or would that in fact incur a lot of overhead?
I'm not sure if that's what I want to do, but I am still getting occasional errors like "Failed to make context 327682 current. Error: 0" and I can't track them down. I'm not sure if I'm doing something wrong with keeping the right context current or if there's something going wrong internally in OpenTK.
Edit: I also occasionally get a NullReferenceException on this line in WglHelper.cs (from OpenTK code):
extensions = Wgl.Arb.GetExtensionsString(context.DeviceContext).Split(" ".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
because Wgl.Arb.GetExtensionsString(context.DeviceContext) returns null. All of these errors happen very unpredictably.
Edit2: Oh yeah, I'm also waiting for full screen support, not just the improved text drawing implementation. Meanwhile, I managed to upgrade one of the old DirectX projects to OpenTK. Here's the compiled result:
(It's pretty small when it's not running in full screen, but it's an interesting project.)