Basically, the apps are just some tools to assist in game programming (editors and the like). So, there needs to be a panel that displays a 3D scene, along with a toolbar, property grid, etc.
I've written one such app before using WinForms in C#. I've found it to be a bit of a pain, because the 3D scene drawing was all done by a native C++ DLL, and I had to use p/Invoke in order to make calls into it. This means that my C++ DLL needed to have a flat API of C-linked functions (I could have omitted that step, but who wants to deal with mangling?). I could only marshal across PODS, basically, and I certainly couldn't instantiate C++ classes and manipulate the objects directly. The worst problem, though, is that any time I had an unhandled exception in the C++ DLL, I didn't get any information about it except a generic message that said "Something went kaboom" (or something equally uninformative).
I've also written one such app using WPF, but it had the same problem as above, with the additional problem that WPF doesn't give you a separate window handle for each control; instead, the entire window shares a device context, and so drawing just to one panel control (say) is difficult. The easiest solution ended up being to render to an offscreen buffer and read the pixels back, which was kinda gross.
I suppose I could use p/Invoke to make a thin wrapper around OpenGL32.dll (which I haven't tried before, but seems like it'd work), but I'd much rather just link to the same engine DLL that my game uses, so that code gets reused, instead of duplicating all of the functionality I need in C#.
So, I'm really itching to do something in native C++. What are my options here? As far as I can tell: Win32, MFC, and Qt. Out of these three, only Qt seems modern and friendly enough to use. However, it's the only one that I have no experience with.
What is the deal with the SDK? I installed it, and it's gargantuan (more than a gig), has it's own SDK, and installed some drivers on my machine (one of which was unsigned). I feel like I've swallowed a cow. I don't want to use their IDE. I see there is a Visual Studio Qt addon, so I suppose that would work. What do you think? Is it worth all of this? I was hoping for just a set of libraries and headers that I can link/include in my project.
My GUI needs are pretty simple. Window, menu, toolbar, property grid, panel with 3D scene. I can roll all of this programmatically; I don't need resource files, wizards, WYSIWYGs, etc. I admit I'll miss Xaml, though. =D
Edited by CDProp, 14 August 2012 - 09:46 PM.