Should I do DX GUI for Level Editor GUI?

Started by
6 comments, last by Paul C Skertich 11 years, 9 months ago
I am still very excited about my level editor in Win32 API in C++. I fully initialized DX when I click on File -> New Scene. I was in my mist of creating a edit bar (simple Dialog Box) where I noticed once I initialized the DX11 Device and moved the dialog around - it left nasty crap behind. For instance, the blue DirectX display when back to the original background of the Windows program. The Win32 Modless Dialogbox is a child of the main window.

I'm asking if I should chose a MDI Form or use a DirectX GUI? Should I reduce the view port size of the DirectX like in half then the modeless dialog wouldn't get in the way? What is the best approch should I handle this? Thanks!
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
Advertisement
Historically mixing GUI and accelerated rendering has been somewhat troublesome at the very least.
It was my understanding post-areo would make them work. Bad to know I was wrong.
Personally I would suggest dropping OS GUI frameworks. DXUTGUI (I don't know if it was ported to D3D1x) is good looking but a bit of a quick hack, I suggest to stay away from it.
I've been looking at CEGUI for quite a while but greatly misunderstood the documentation for a long time. The author himself chimed in a few days ago and somehow I got the illumination I couldn't see for so long time. I strongly suggest to have a look at CEGUI.

Previously "Krohm"

ouch, using Win32 for a level editor? You like pain I guess.
If you are doing this as a learning process then it's all good. If you need to get something working I strongly suggest you to rethink the approach :)
Best options would be QT and Borland Builder series if you want to stay C++, or C# WinForms + Managed C++ interface to the engine side.

I use the second approach for my editors and I don't have to curse the world and write 100 lines of code if I need to add a button :)

"Gamey" gui system such as CEGUI or DXUTGUI are ok to use in the game itself because you don't have a choice, but in an Editor? You have a choice, don't hurt yourself :)

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

I think your life would be easier if you export ur core code into dll and make the GUI in C#.
I'm not fan of microsoft but I think this gonna be easier.
Kunos, no wonder why I keep on thinking to myself, "This is absolutely crazy! There has to be a better way!" I'll take your idea! Thanks everyone for their support! Whew, no wonder why my head hurts - the brick wall DOES HURT! :D
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
Kunos, so, I started to make the pretty interface in C# then I plan to bring in the managed game engine functions - is this possible? Also what about a user form control to have directx functions, for the level editor would this be even better?

I just woke up, so may not make a lot of sense right now! LOL!
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX
If your engine is already done in C++ you have 2 options:

- You can expose your engine through a plain C interface, then call those directly from C# land. This is a good exercise and it'll give you the possibility to expose the engine to Mono as well pretty much every other language that can bind with C.
- You can expose your engine using a Managed C++ dll .. which is what I do.

None of these have particular pro/cons

If your engine is not done yet.. then you're still in time to see the light and do everything in C# using SlimDX to interact with DX11. SlimDX (or the alternative SharpDX) is a almost 1:1 .NET binding for the entire DirectX world.. you can easily translate from any tutorial you find in C++ in C# in minutes, functions names, objects and parameters are the same.

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

Kunos, you're awesome for helping out amongst others too! Thanks for clearing up some gook out of my head! Much appreciated!
Game Engine's WIP Videos - http://www.youtube.com/sicgames88
SIC Games @ GitHub - https://github.com/SICGames?tab=repositories
Simple D2D1 Font Wrapper for D3D11 - https://github.com/SICGames/D2DFontX

This topic is closed to new replies.

Advertisement