Jump to content
  • Advertisement
Sign in to follow this  
~Helgon

Which Lib for DirectX Editor / GUI ?

This topic is 2020 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, i would like to know whats mostly used for the game editors (I mean the editor to model the terrain, to place objects, set way points, script and so on)

I know that when i used XNA it was possible to render the XNA frame into an ImageField (over a kinda hack.. im not sure anymore how it was done exactly) and then just drag n drop the GUI with the C# WindowsForms editor (in VS).

But how is it done with DirectX? What do people mostly use?

QT
wxWidgets
gtkmm

or is it even possible to do use WindowsForms even with DirectX and C++?

I presume that if the target platform is linux and windows its QT, gtkmm and wxwidgets but what is for example used in an AAA titles like the SC2 Editor, Skyrim etc.

Regards Helgon Edited by ~Helgon

Share this post


Link to post
Share on other sites
Advertisement
I use WinForm with C# and the native C++ engine exposed using a CLI C++ layer.
The tricky part is the interactions between managed and native, once you are done with those it's all easy on the C# side. I have played with those before so it was really easy to do for this new editor.

The other tech you mention are all valid options even if they don't offer the same "visual" gui building easiness of C#.. but, of course, the integration has no hidden tricks to be learn.

Share this post


Link to post
Share on other sites
You have several options:

  • use a c++ gui toolkit as you mentioned ( I would pick up Qt )
  • expose your c++ engine to a high level language. This can easily be done by using swig (java, python, c#, ruby) or by creating a c++/cli layer (c# only)
  • use inter-process communication between your editor and the game ( tcp sockets )


    [Edit]
    Generally speaking, the only things that have to be done to render a scene in an editor is to pass the editor window/panel handle to your c++ engine and call your render function periodically or when the application is idle. Edited by renega_666

Share this post


Link to post
Share on other sites
Hi, thanks for the answers.

This C++/CLI layer thing using WindowsForms sounds good but one question. U both mentioned its "c# only". What does that mean?

And do you have maybe a good resource(snippet, tutorial, video ...) which shows me how to directly implement the render frame into a WindowsForm?

Regards Helgon

Share this post


Link to post
Share on other sites
Where did we say "C#" only? I can't find it.

Once you are in .NET land, you can code it all in C++/CLI, you can use C#, Visual Basic, F#.. and about a dozen more ports of popular languages on the .NET platform.
It wouldn't be a terribly smart thing to do (because C# is the language the entire .NET is built around) but you can still do it..it's the entire point of something like .NET.

Share this post


Link to post
Share on other sites

Where did we say "C#" only? I can't find it.




  • by creating a c++/cli layer (c# only)



OK what you say sounds nice. I think that's the way i gonna try it.
As i already asked. Do you maybe have a good resource?

Regards

Share this post


Link to post
Share on other sites
hm not that I know of. For me it was trial and error.. google around for .NET Interop and P/Invoke.. those are the things you'll have to get familiar with to move stuff around. If you use C++/CLI you will have to learn the extensions to the language to interact with .NET .

Share this post


Link to post
Share on other sites
As i already asked. Do you maybe have a good resource?[/quote]

There is an example here:

http://blog.drorhelper.com/2008/11/how-to-render-managed-net-form-using.html

He uses pInvoke but the concepts remains the same: you have to override the OnPaint method and call your native rendering function Edited by renega_666

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!