Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Dark GDK / Dumped GDK in favour of Irrlicht

Author
Message
m0ng00se
16
Years of Service
User Offline
Joined: 2nd Dec 2007
Location:
Posted: 16th Jan 2008 04:23
Okay before you all flame me I prefer the DARK GDK for all my animation over any other engine bit I CANNOT get it to integrate with the Win32 GUI API no matter how har I try.

You can read all my previous posts on here where I tried for over a month to build a Win32 GUI around my GDK app but gave up in disgust. I can run Irrlicht or dx9_d3dx as a client window inside a Win32 app and use the win API message loop, dialog boxes, menus... any Win API call at all but GDK takes over won't run as a client to the main message loop.

The other issue that drove me crazy was the Dark GDK debug library conflicts that totally screwed my code and wasted a week of my time trying to fix, yet no other game engines I've tested had any library issues at all.

In 3 days I built a Win 32 GUI with the Irrlicht Graphics engine inside it yet I couldn't do that in 3 months with GDK.

I don't understand why Microsoft is promoting GDK when it is the hardest of all engines to integrate with the MS API??? What is with that?

Having said all that, I still wish I could use the GDK for the animation because it did it better than the other engines I've tried.

m0ng00se
jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 16th Jan 2008 05:45
Wow. I feel that pain boy - Aaron Miller has a solution perhaps - haven't tried it yet though admittedly... and I'm currently trying to work around that same issue using inter process communication.

Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 16th Jan 2008 06:39
Quote: "any Win API call at all but GDK takes over won't run as a client to the main message loop."

Subclass the main window and pass on any messages that don't belong to your controls.

jason p sage
17
Years of Service
User Offline
Joined: 10th Jun 2007
Location: Ellington, CT USA
Posted: 16th Jan 2008 06:42
m0ng00se
16
Years of Service
User Offline
Joined: 2nd Dec 2007
Location:
Posted: 16th Jan 2008 07:01
@Benjamin

What do you mean exactly? I want a standard Win 32 API interface, actually I'd prefer C.NET or Win Forms App but I've had to settle for Win32.

I just create my main window instance, then create a normal window class client using normal MS API calls, then I run Irrlicht inside the client and it's perfectly happy and I can use either the Irrlicht message loop or the Win API message loop.

In effect it is the exact opposite of GDK. Win32 handles the Irrlicht game engine and insulates it nicely from the main API whereas GDK takes over the whole app and makes it almost impossible to use standard Win32 API calls.

Animation is just ONE part of my game, not the be all and end all. I need a whole interface behind the animation... not a main parent animation behind the interface. I want text processed as text, not drawn on the screen by the GDI as a paint object.

m0ng00se
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 16th Jan 2008 07:18 Edited at: 16th Jan 2008 07:34
Actually I'm not entirely sure why I suggested that.

Subclassing is where you basically hijack a window's message processing function so that you can handle its messages yourself and pass on any you don't want to handle. This is useful if you register event notification with a particular window that you didn't create yourself. However, in this case I don't think that'll help you.

I've had about 1 hours sleep - yes I'll blame that. Sorry.

Something useful that I can tell you (although you may already know it) is that in order to have your own controls in a DarkGDK application you might have to implement a message pump that is called often, unless DarkGDK dispatches messages for all windows already.

If you're trying to have the main window act as a child to another window, have you tried using SetParent?

tempicek
16
Years of Service
User Offline
Joined: 27th Nov 2007
Location: Prague
Posted: 16th Jan 2008 11:05 Edited at: 16th Jan 2008 11:10
Quote: "Something useful that I can tell you (although you may already know it) is that in order to have your own controls in a DarkGDK application you might have to implement a message pump that is called often, unless DarkGDK dispatches messages for all windows already."


While he can remove the LoopGDK call and create his own main loop for dispatching messages, I wouldn't recommend that since it would bring a lot of work and possibly alter the functionality of GDK. Is that what you ment?

Quote: "I don't understand why Microsoft is promoting GDK when it is the hardest of all engines to integrate with the MS API??? What is with that?"


That's a question I'm asking myself every day. I wonder what was behind that.
Benjamin
21
Years of Service
User Offline
Joined: 24th Nov 2002
Location: France
Posted: 16th Jan 2008 11:24 Edited at: 16th Jan 2008 11:24
Quote: "While he can remove the LoopGDK call and create his own main loop for dispatching messages, I wouldn't recommend that since it would bring a lot of work and possibly alter the functionality of GDK."

I didn't actually suggest this, for the same reasons you state. I'm saying that if DarkGDK doesn't dispatch messages for all windows, he could implement his own message pump inside the main loop of the game, and other places as necessary. I'm still not really sure I understand what the problem is.

tempicek
16
Years of Service
User Offline
Joined: 27th Nov 2007
Location: Prague
Posted: 16th Jan 2008 12:27
Oh, I see, that's right.
m0ng00se
16
Years of Service
User Offline
Joined: 2nd Dec 2007
Location:
Posted: 16th Jan 2008 12:44
Well at the moment I create a standard Win32 Project, then define, register and create my main window using the standard MS API. Then I create a child window (or dialog) as runtime code or defined in a resource file (*.rc) and only then do I call my graphics engine (either Irrlicht or dx3d9) and pass the graphics device the handle of my child window where it runs happily as a nice little slave process.

I can then pass it messages using the win API main message loop just as I sendmessage() to any child window or I can use the Irrlicht message handler. It's very flexible. So far anyway but time will tell.

I couldn't even get GDK running as a subordinate child process to the main API after trying for a month. It took me about 3 minutes with Irrlicht once I built the GUI to put it in.

Call me old fashioned but I don't want to write my own message handlers and climb tall code mountains just to re-invent the wheel. Why have an SDK in the first place if you still end up having to re-write your own wrappers and message handlers? Why even have a nice MS API with handles into everything standard in an operating system if you can't even get at it with the simple built in functions?

Sigh, yet the GDK was so good at the animation and so simple to use for pure animation. Now I have my nice GUI using the Win API but the animation is three times as much work. No nicely wrapped pre-defined libraries and headers. Just can't win.

m0ng00se
John Goewert
16
Years of Service
User Offline
Joined: 1st Jan 2008
Location: Cornfield, MO
Posted: 18th Jan 2008 03:31 Edited at: 18th Jan 2008 03:32
Haha!

Tell Niko I said 'hi'.

http://irrlicht.sourceforge.net/author.html

Using DGDK since 01/01/2008
Blah - http://www.john.goewert.org

Login to post a reply

Server time is: 2024-10-08 15:52:53
Your offset time is: 2024-10-08 15:52:53