Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Which Lib for DirectX Editor / GUI ?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
8 replies to this topic

#1 ~Helgon   Members   -  Reputation: 357

Like
0Likes
Like

Posted 08 December 2012 - 08:08 AM

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, 08 December 2012 - 08:09 AM.

from time to time i find time


Sponsor:

#2 kunos   Crossbones+   -  Reputation: 2207

Like
1Likes
Like

Posted 08 December 2012 - 08:20 AM

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.
Stefano Casillo
Lead Programmer
TWITTER: @KunosStefano
AssettoCorsa - netKar PRO - Kunos Simulazioni

#3 ColinDuquesnoy   Members   -  Reputation: 1151

Like
1Likes
Like

Posted 08 December 2012 - 10:04 AM

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, 08 December 2012 - 10:15 AM.


#4 ~Helgon   Members   -  Reputation: 357

Like
0Likes
Like

Posted 08 December 2012 - 07:17 PM

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

from time to time i find time


#5 kunos   Crossbones+   -  Reputation: 2207

Like
1Likes
Like

Posted 09 December 2012 - 02:37 AM

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.
Stefano Casillo
Lead Programmer
TWITTER: @KunosStefano
AssettoCorsa - netKar PRO - Kunos Simulazioni

#6 ~Helgon   Members   -  Reputation: 357

Like
0Likes
Like

Posted 09 December 2012 - 03:25 AM

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

from time to time i find time


#7 kunos   Crossbones+   -  Reputation: 2207

Like
1Likes
Like

Posted 09 December 2012 - 03:32 AM

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 .
Stefano Casillo
Lead Programmer
TWITTER: @KunosStefano
AssettoCorsa - netKar PRO - Kunos Simulazioni

#8 MichaBen   Members   -  Reputation: 481

Like
2Likes
Like

Posted 09 December 2012 - 03:33 AM

Personally I'm using Qt, it is easy to hook up your own rendering system in it, and it's a very good GUI toolkit.

#9 ColinDuquesnoy   Members   -  Reputation: 1151

Like
0Likes
Like

Posted 10 December 2012 - 06:13 AM

As i already asked. Do you maybe have a good resource?


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, 10 December 2012 - 06:13 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS