digitalmars.D - OpenGL GUI or GUI with (renderer/API of choice)?
- Chad J (30/30) Dec 14 2005 I have decided that I want to write my computer games in D, instead of C...
- =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= (3/6) Dec 14 2005 Use a standalone newsreader, Mozilla Thunderbird is not too shabby.
- Tom S (30/51) Dec 14 2005 Well... in the works. I've been working on a 3d game engine for some
- Craig Black (6/6) Dec 14 2005 Noone seemed to like the idea last time I mentioned it, but I think some...
- John Reimer (4/4) Dec 14 2005 Last I heard, Ant's DUI supported an OpenGL canvas. It was working on
- J C Calvarese (6/9) Dec 14 2005 Try this page:
- clayasaurus (15/15) Dec 14 2005 You can either
- John Reimer (5/25) Dec 14 2005 What about Terra? It is a GUI framework done fully in OpenGL, I believe....
- clayasaurus (5/34) Dec 14 2005 Well, I did say 'work with the dsource.org community and try to make a
- clayasaurus (4/44) Dec 14 2005 Another thing I forgot to add, he wants an API independent GUI lib.
- Tom S (11/14) Dec 14 2005 I don't get it. Why are you suggesting DUI ? Chad was certainly asking
- John Reimer (9/19) Dec 14 2005 Because of this line:
- clayasaurus (3/30) Dec 14 2005 Yes, and DUI may suit his purposes especially if he is doing a level
- Chad J (42/42) Dec 14 2005 Interesting. Yes it needs to be good for games. This means skinnable
- Tom S (7/13) Dec 14 2005 Sorry for that. It happens on most ATI cards. Not entirely my fault. It ...
- Tom S (15/29) Dec 15 2005 Ok... here's a link (3MB):
- Chad J (5/35) Dec 15 2005 Still crashes, unfortunately. Same error. Crashes after printing
- Tom S (20/36) Dec 15 2005 Damn. I thought this version worked with ATIs :( If I only had one at
- Chris Lajoie (4/24) Dec 15 2005 I tried it on my 9800 pro and it crashed. Have a look at my post about t...
- Chris Lajoie (3/22) Dec 15 2005 I've been trying to get it to run for a while now, I can't figure it out...
- Tom S (10/16) Dec 16 2005 Thanks for the info. I'll take a look at these games' source (I hope
- Chad J (19/55) Dec 16 2005 OK I ran techdemo5, publicRelease (mirror one), and smallTest on another...
- Tom S (16/36) Dec 16 2005 Just check the log file. It will probbly complain about being unable to
- Chad J (15/21) Dec 16 2005 Hehe yep that's it. Got me :) Well, I did away with the spaces and got...
- Trevor Parscal (44/44) Dec 17 2005 I just wanted to clarify some things about Terra...
- James Dunne (34/68) Dec 14 2005 Check out this C version of something close to what you're looking for.
- James Dunne (2/102) Dec 14 2005 As promised, the related image files.
- Chad J (2/48) Dec 15 2005 Cool thanks. Keep me posted on how the C -> D conversion goes.
- Sebastian Beschke (5/39) Dec 15 2005 Of course, there is derelict providing bindings to the famous SDL
- Chad J (4/8) Dec 15 2005 I am actually using derelict. It is great, has a lot of good bindings
- Chris Lajoie (9/15) Dec 15 2005 http://www.asahi-net.or.jp/~cs8k-cyu/index_e.html
or anything else. That said, I will need a GUI toolkit for any game I want to make in D. It has to use OpenGL, unless someone can tell me how to make OpenGL and some other GUI lib using a different renderer work in harmony in the same app, on the same window. So far I have been unable to find any GUI libs that will work with both D and OpenGL, and I was wondering if one is available or in the works. If there isn't a good OpenGL GUI around that works in D, I am probably going to code one myself. I've decided that it would probably be easier to just port some C++ code from one of the OpenGL GUI libraries rather than do it from scratch. One I am particularly interested in is CEGUI, or Crazy Eddie's GUI System (http://www.cegui.org.uk/modules/news/). So far I like it. It is skinnable, uses XML for said skinning, seems straightforward enough, and is used in games. One thing caught my attention though: CEGUI can use different renderers to display the GUI. It made me start to think, why not have a GUI that can use any renderer or basic API? I get the feeling that most of the code in a GUI library deals with its behavior, accepting inputs, and deciding where to draw images, and only a small fraction is dedicated to actually rendering the images. I'm thinking it might be possible to make a layer that would work between the GUI and the renderer, and allow people to write modules for the GUI system that tell it how to handle rendering. That way all of the GUI code would be reused, and people who want a different API/renderer would just need to tell the GUI system how to draw an image to the screen. Another problem I see with GUI lib reliance on APIs is input. CEGUI handled that by having the coder inject mouse/keyboard events into it. Such a library could have little or no reliance on any API, native or otherwise. Please correct me if I'm wrong, or let me know if this sort of thing is happening already. One last thing - I am unable to find a "search" option on this forum/newsgroup. Is there an easier way to look for things besides looking through the forum one page at a time?
Dec 14 2005
Chad J wrote:One last thing - I am unable to find a "search" option on this forum/newsgroup. Is there an easier way to look for things besides looking through the forum one page at a time?Use a standalone newsreader, Mozilla Thunderbird is not too shabby. --anders
Dec 14 2005
Chad J wrote:or anything else. That said, I will need a GUI toolkit for any game I want to make in D. It has to use OpenGL, unless someone can tell me how to make OpenGL and some other GUI lib using a different renderer work in harmony in the same app, on the same window. So far I have been unable to find any GUI libs that will work with both D and OpenGL, and I was wondering if one is available or in the works.Well... in the works. I've been working on a 3d game engine for some time. Currently it uses OpenGL as its renderer (but I may add D3D later on). It's also got an early version of a GUI coded entierly in D. The project's forum can be found here: http://dsource.org/forums/viewforum.php?f=54 There's a link to a GUI demo download, which shows a few of its features. The demo is buggy, which can be checked by either using the mouse wheel or both mouse buttons to select ListBox items. These were really minor and I've eliminated them already, but just be aware that the demo may crash. I'm currently low on free time, so the GUI isn't completely separated from my engine, I'm working on enhancing my photon mapper and possibly adding some PRT calculation capabilities to it, plus I have to refactor some code, while being busy with university stuff. Ahh... lots of things on my head, but I'm really looking forward to separating the GUI from my engine and making it available to the public.One thing caught my attention though: CEGUI can use different renderers to display the GUI. It made me start to think, why not have a GUI that can use any renderer or basic API? I get the feeling that most of the code in a GUI library deals with its behavior, accepting inputs, and deciding where to draw images, and only a small fraction is dedicated to actually rendering the images. I'm thinking it might be possible to make a layer that would work between the GUI and the renderer, and allow people to write modules for the GUI system that tell it how to handle rendering. That way all of the GUI code would be reused, and people who want a different API/renderer would just need to tell the GUI system how to draw an image to the screen. Another problem I see with GUI lib reliance on APIs is input. CEGUI handled that by having the coder inject mouse/keyboard events into it. Such a library could have little or no reliance on any API, native or otherwise. Please correct me if I'm wrong, or let me know if this sort of thing is happening already.AFAIK you're completely right. I've seen CEGUI work with the Ogre - On a seminar by a guy from PeopleCanFly (makers of Painkiller). The only thing that a GUI really needs is a simple graphics 'driver' which would draw a bunch of textured quads (and possibly load these textures in a special way) and a means of receiving input, just as you said. -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d-pu s+: a-->----- C+++$>++++ UL P+ L+ E--- W++ N++ o? K? w++ !O !M V? PS- PE- Y PGP t 5 X? R tv-- b DI- D+ G e>+++ h>++ !r !y ------END GEEK CODE BLOCK------ Tomasz Stachowiak /+ a.k.a. h3r3tic +/
Dec 14 2005
Noone seemed to like the idea last time I mentioned it, but I think someone should port Qt to D. Qt is full featured, cross platform, and includes good support for OpenGL. I know from experience that it is a very good tool. In fact, I would go so far as to say it is the best quality GUI framework available. -Craig
Dec 14 2005
Last I heard, Ant's DUI supported an OpenGL canvas. It was working on Linux and Win32 for awhile. With the change to dynamic module loaders driving DUI, though, I think the OpenGL canvas is incomplete again. -JJR
Dec 14 2005
In article <dnopb0$hq7$1 digitaldaemon.com>, Chad J says...One last thing - I am unable to find a "search" option on this forum/newsgroup. Is there an easier way to look for things besides looking through the forum one page at a time?Try this page: http://www.digitalmars.com/advancedsearch.html Searching for information about D is often an adventure. Here are some tips that I've compiled: http://www.prowiki.org/wiki4d/wiki.cgi?SearchingTips jcc7
Dec 14 2005
You can either A) Try and use DUI over at dsource.org, which is essentially GTK for D B) Roll out your own and become famous As for a newsreader, go to mozilla.com and grab a hold of Thunderbird, it has search functionality and makes the newsgroup readable. If you decide to roll your own, here are some more options 1) Work with the dsource.org community to try and make a standard OpenGL GUI for D. This way other D programmers interested in the same thing can give you support and be your advanced beta testers. I'll promise you at least two people will be interested in it. ;) 2) Make bindings for an already existing D OpenGL GUI. You can get C and C++ libraries to work in D, albeit C++ takes a little more effort as you bind from C++ --> C --> D. Goodluck, for whichever path you may choose. ~ Clay
Dec 14 2005
clayasaurus wrote:You can either A) Try and use DUI over at dsource.org, which is essentially GTK for D B) Roll out your own and become famous As for a newsreader, go to mozilla.com and grab a hold of Thunderbird, it has search functionality and makes the newsgroup readable. If you decide to roll your own, here are some more options 1) Work with the dsource.org community to try and make a standard OpenGL GUI for D. This way other D programmers interested in the same thing can give you support and be your advanced beta testers. I'll promise you at least two people will be interested in it. ;) 2) Make bindings for an already existing D OpenGL GUI. You can get C and C++ libraries to work in D, albeit C++ takes a little more effort as you bind from C++ --> C --> D. Goodluck, for whichever path you may choose. ~ ClayWhat about Terra? It is a GUI framework done fully in OpenGL, I believe. The project looked like it was getting off to a good start. Maybe that's of interest here? -JJR
Dec 14 2005
John Reimer wrote:clayasaurus wrote:Well, I did say 'work with the dsource.org community and try to make a standard OpenGL GUI for D,' Terra would certainly pertain to this. The ownly downside is that I assume Trevor is busy with Titan (kernel) and that Terra's SVN doesn't contain anything ATM.You can either A) Try and use DUI over at dsource.org, which is essentially GTK for D B) Roll out your own and become famous As for a newsreader, go to mozilla.com and grab a hold of Thunderbird, it has search functionality and makes the newsgroup readable. If you decide to roll your own, here are some more options 1) Work with the dsource.org community to try and make a standard OpenGL GUI for D. This way other D programmers interested in the same thing can give you support and be your advanced beta testers. I'll promise you at least two people will be interested in it. ;) 2) Make bindings for an already existing D OpenGL GUI. You can get C and C++ libraries to work in D, albeit C++ takes a little more effort as you bind from C++ --> C --> D. Goodluck, for whichever path you may choose. ~ ClayWhat about Terra? It is a GUI framework done fully in OpenGL, I believe. The project looked like it was getting off to a good start. Maybe that's of interest here? -JJR
Dec 14 2005
clayasaurus wrote:John Reimer wrote:Another thing I forgot to add, he wants an API independent GUI lib. Wouldn't a GUI lib in Terra force API dependence on Terra? What if he wants to use it with SDL or GLFW?clayasaurus wrote:Well, I did say 'work with the dsource.org community and try to make a standard OpenGL GUI for D,' Terra would certainly pertain to this. The ownly downside is that I assume Trevor is busy with Titan (kernel) and that Terra's SVN doesn't contain anything ATM.You can either A) Try and use DUI over at dsource.org, which is essentially GTK for D B) Roll out your own and become famous As for a newsreader, go to mozilla.com and grab a hold of Thunderbird, it has search functionality and makes the newsgroup readable. If you decide to roll your own, here are some more options 1) Work with the dsource.org community to try and make a standard OpenGL GUI for D. This way other D programmers interested in the same thing can give you support and be your advanced beta testers. I'll promise you at least two people will be interested in it. ;) 2) Make bindings for an already existing D OpenGL GUI. You can get C and C++ libraries to work in D, albeit C++ takes a little more effort as you bind from C++ --> C --> D. Goodluck, for whichever path you may choose. ~ ClayWhat about Terra? It is a GUI framework done fully in OpenGL, I believe. The project looked like it was getting off to a good start. Maybe that's of interest here? -JJR
Dec 14 2005
clayasaurus wrote:You can either A) Try and use DUI over at dsource.org, which is essentially GTK for D B) Roll out your own and become famousI don't get it. Why are you suggesting DUI ? Chad was certainly asking about a GUI that draws in a 3D api, not a general purpose system-level GUI like GTK or DWT, etc. Something just like CEGUI, Terra's GUI or my own. -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d-pu s+: a-->----- C+++$>++++ UL P+ L+ E--- W++ N++ o? K? w++ !O !M V? PS- PE- Y PGP t 5 X? R tv-- b DI- D+ G e>+++ h>++ !r !y ------END GEEK CODE BLOCK------ Tomasz Stachowiak /+ a.k.a. h3r3tic +/
Dec 14 2005
Tom S wrote:clayasaurus wrote:Because of this line: "It has to use OpenGL, unless someone can tell me how to make OpenGL and some other GUI lib using a different renderer work in harmony in the same app, on the same window." It was just ambiguous enough so that we thought he meant a GUI that could access opengl. Otherwise I agree... he was quite plain about what he really wanted. -JJRYou can either A) Try and use DUI over at dsource.org, which is essentially GTK for D B) Roll out your own and become famousI don't get it. Why are you suggesting DUI ? Chad was certainly asking about a GUI that draws in a 3D api, not a general purpose system-level GUI like GTK or DWT, etc. Something just like CEGUI, Terra's GUI or my own.
Dec 14 2005
John Reimer wrote:Tom S wrote:Yes, and DUI may suit his purposes especially if he is doing a level editor. The more options he has the better.clayasaurus wrote:Because of this line: "It has to use OpenGL, unless someone can tell me how to make OpenGL and some other GUI lib using a different renderer work in harmony in the same app, on the same window." It was just ambiguous enough so that we thought he meant a GUI that could access opengl. Otherwise I agree... he was quite plain about what he really wanted. -JJRYou can either A) Try and use DUI over at dsource.org, which is essentially GTK for D B) Roll out your own and become famousI don't get it. Why are you suggesting DUI ? Chad was certainly asking about a GUI that draws in a 3D api, not a general purpose system-level GUI like GTK or DWT, etc. Something just like CEGUI, Terra's GUI or my own.
Dec 14 2005
Interesting. Yes it needs to be good for games. This means skinnable and I'm also thinking it will need to be capable of HUD (heads up display) type functionality (alpha blending perhaps?), incase the player wants to put widgets/icons/whatever ontop of the game's viewport. It also needs to be fast. I am really hoping for something that is strictly a GUI system, not an API. Now I haven't given an entirely thorough look at all of the suggestions, but I did give a glance. I still have plenty of reading to do. Anyhow, here are my impressions: DUI - Yeah seems too system oriented. If it meets some of the other criteria though, I wonder how difficult it would be to add on some game-developer friendly code in there? Perhaps add the option to make it function like I suggested in my original post: let the person using it plug in their own API for it to work ontop of. Terra - I am having trouble understanding what exactly its intent is. I probably just haven't read the forum on dsource enough. I read Trevor's welcoming post and he said this "Terra is not meant for game development, it's meant for application development. It is not so different from SDL or GLFW, spare the fact that it's written in D, instead of being a binding to a compiled C library." He then said that a GUI toolkit could be built ontop of Terra and OpenGL. That would suggest that it is primarily an API... I get the feeling I am wrong about this though. Qt - Qt looks BIG. It is probably far more than I could port or replicate. If I had plenty of help though it might be possible. It also looks expensive (at least for my bedroom programmer/college student budget), unless the D version could be made free somehow. And it seems to want to be an API as well as a GUI, and I dunno how problematic that may or may not be. Those things aside though, it looks very impressive. crashed :/ It gave me the same error that the Mirrors demo gave JJR. Mirrors also crashed for me in the same way. FYI I am using a Radeon 9500 PRO / 9700 on a Windows XP SP2 system. I may try running it on another system to try and get it to work. It sounds very close to what I need. If I were to make my own or port/bind something from C++, my initial instinct is to model it after CEGUI and make it strictly a GUI, and nothing else. Then hopefully other things could be built ontop of it, underneath it, or... or even next to it!, ideally with a minimum of hassle for whoever uses it. I am not sure I'd be able to do that though, and I might have to settle for a pretty minimalistic GUI subsystem.
Dec 14 2005
In article <dnqi4p$269s$1 digitaldaemon.com>, Chad J says...crashed :/ It gave me the same error that the Mirrors demo gave JJR. Mirrors also crashed for me in the same way. FYI I am using a Radeon 9500 PRO / 9700 on a Windows XP SP2 system. I may try running it on another system to try and get it to work. It sounds very close to what I need.Sorry for that. It happens on most ATI cards. Not entirely my fault. It crashes on DSL initialization when SDL_HWSURFACE is passed to the window's initializer. Not sure why. Try testing it on an nVidia. I'll put an updated executable online today. -- Tomasz Stachowiak a.k.a. h3r3tic
Dec 14 2005
Tom S wrote:In article <dnqi4p$269s$1 digitaldaemon.com>, Chad J says...Ok... here's a link (3MB): http://158.75.59.9/~h3/download/smallTest.rar It's not the same app as in test5.rar nor is it my most recent code. The latest code doesn't work, because of me doing some hack'n'slash on it ;) It should work on ATI carts, at least it worked when I tested it :). Oh, and make sure to extract files to a directory without a space in its path. I'll make a workaround later. -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d-pu s+: a-->----- C+++$>++++ UL P+ L+ E--- W++ N++ o? K? w++ !O !M V? PS- PE- Y PGP t 5 X? R tv-- b DI- D+ G e>+++ h>++ !r !y ------END GEEK CODE BLOCK------ Tomasz Stachowiak /+ a.k.a. h3r3tic +/crashed :/ It gave me the same error that the Mirrors demo gave JJR. Mirrors also crashed for me in the same way. FYI I am using a Radeon 9500 PRO / 9700 on a Windows XP SP2 system. I may try running it on another system to try and get it to work. It sounds very close to what I need.Sorry for that. It happens on most ATI cards. Not entirely my fault. It crashes on DSL initialization when SDL_HWSURFACE is passed to the window's initializer. Not sure why. Try testing it on an nVidia. I'll put an updated executable online today.
Dec 15 2005
Tom S wrote:Tom S wrote:Still crashes, unfortunately. Same error. Crashes after printing "Creating a Window". The directory it's under is C:\Loadz\D_Language\heretic\smallTest\ where _ IS an underscore, so no spaces.In article <dnqi4p$269s$1 digitaldaemon.com>, Chad J says...Ok... here's a link (3MB): http://158.75.59.9/~h3/download/smallTest.rar It's not the same app as in test5.rar nor is it my most recent code. The latest code doesn't work, because of me doing some hack'n'slash on it ;) It should work on ATI carts, at least it worked when I tested it :). Oh, and make sure to extract files to a directory without a space in its path. I'll make a workaround later.crashed :/ It gave me the same error that the Mirrors demo gave JJR. Mirrors also crashed for me in the same way. FYI I am using a Radeon 9500 PRO / 9700 on a Windows XP SP2 system. I may try running it on another system to try and get it to work. It sounds very close to what I need.Sorry for that. It happens on most ATI cards. Not entirely my fault. It crashes on DSL initialization when SDL_HWSURFACE is passed to the window's initializer. Not sure why. Try testing it on an nVidia. I'll put an updated executable online today.
Dec 15 2005
Chad J wrote:Tom S wrote:Damn. I thought this version worked with ATIs :( If I only had one at home... This must still be a problem with SDL vs ATI drivers. It worked on ALL nVidia cards I could test it with, from TNT2 to GF6800. You might try reinstalling your drivers or getting a more recent SDL version (1.2.7 is packaged with the demo - the most recent is 1.2.9). Sorry for it :/ BTW the space-in-path problem is also only indirectly related to my engine. I'm using DMD for shader compilation and IIRC dmd doesn't like to be in a path with spaces. Or was it about build... I dunno. Nevertheless it would complain about being unable to compile a shader if that was the issue. Now it seems as SDL is still causing me trouble. Can anybody else test it on an ATI card ? -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d-pu s+: a-->----- C+++$>++++ UL P+ L+ E--- W++ N++ o? K? w++ !O !M V? PS- PE- Y PGP t 5 X? R tv-- b DI- D+ G e>+++ h>++ !r !y ------END GEEK CODE BLOCK------ Tomasz Stachowiak /+ a.k.a. h3r3tic +/Ok... here's a link (3MB): http://158.75.59.9/~h3/download/smallTest.rar It's not the same app as in test5.rar nor is it my most recent code. The latest code doesn't work, because of me doing some hack'n'slash on it ;) It should work on ATI carts, at least it worked when I tested it :). Oh, and make sure to extract files to a directory without a space in its path. I'll make a workaround later.Still crashes, unfortunately. Same error. Crashes after printing "Creating a Window". The directory it's under is C:\Loadz\D_Language\heretic\smallTest\ where _ IS an underscore, so no spaces.
Dec 15 2005
I tried it on my 9800 pro and it crashed. Have a look at my post about the 5 games written in D (a reply to Chad's original post). It has an SDL interface that works great on my card. Hopefully it works just as well on nVidia cards. ChrisStill crashes, unfortunately. Same error. Crashes after printing "Creating a Window". The directory it's under is C:\Loadz\D_Language\heretic\smallTest\ where _ IS an underscore, so no spaces.Damn. I thought this version worked with ATIs :( If I only had one at home... This must still be a problem with SDL vs ATI drivers. It worked on ALL nVidia cards I could test it with, from TNT2 to GF6800. You might try reinstalling your drivers or getting a more recent SDL version (1.2.7 is packaged with the demo - the most recent is 1.2.9). Sorry for it :/ BTW the space-in-path problem is also only indirectly related to my engine. I'm using DMD for shader compilation and IIRC dmd doesn't like to be in a path with spaces. Or was it about build... I dunno. Nevertheless it would complain about being unable to compile a shader if that was the issue. Now it seems as SDL is still causing me trouble. Can anybody else test it on an ATI card ? Tomasz Stachowiak /+ a.k.a. h3r3tic +/
Dec 15 2005
I've been trying to get it to run for a while now, I can't figure it out. let me know if you want me to test it again. I'm interrested in this as well.... ChrisDamn. I thought this version worked with ATIs :( If I only had one at home... This must still be a problem with SDL vs ATI drivers. It worked on ALL nVidia cards I could test it with, from TNT2 to GF6800. You might try reinstalling your drivers or getting a more recent SDL version (1.2.7 is packaged with the demo - the most recent is 1.2.9). Sorry for it :/ BTW the space-in-path problem is also only indirectly related to my engine. I'm using DMD for shader compilation and IIRC dmd doesn't like to be in a path with spaces. Or was it about build... I dunno. Nevertheless it would complain about being unable to compile a shader if that was the issue. Now it seems as SDL is still causing me trouble. Can anybody else test it on an ATI card ? Tomasz Stachowiak /+ a.k.a. h3r3tic +/I tried it on my 9800 pro and it crashed. Have a look at my post about the 5 games written in D (a reply to Chad's original post). It has an SDL interface that works great on my card. Hopefully it works just as well on nVidia cards.
Dec 15 2005
Chris Lajoie wrote:I tried it on my 9800 pro and it crashed. Have a look at my post about the 5 games written in D (a reply to Chad's original post). It has an SDL interface that works great on my card. Hopefully it works just as well on nVidia cards. ChrisThanks for the info. I'll take a look at these games' source (I hope they are open source) -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d-pu s+: a-->----- C+++$>++++ UL P+ L+ E--- W++ N++ o? K? w++ !O !M V? PS- PE- Y PGP t 5 X? R tv-- b DI- D+ G e>+++ h>++ !r !y ------END GEEK CODE BLOCK------ Tomasz Stachowiak /+ a.k.a. h3r3tic +/
Dec 16 2005
Tom S wrote:Chad J wrote:OK I ran techdemo5, publicRelease (mirror one), and smallTest on another computer. The other comp is an ATI All-in-wonder 9600. Techdemo and publicRelease seemed to run fine. smallTest crashed however, and the error is a different one. It went like this: ... Renderer initialized compiling shaders\simpleHFileter.shader retcode: 1 ********** Heresy Engine Error Handler ********** *Exception caught (CompileException) : Compilation error. See shaders\simpleHFilter.compile.log for details Hey if you happen to use AIM or ICQ instant messagers, you could message me when I'm around and whenever you have a new compilation that needs testing. As long as I'm not too busy or afk I can give it a whirl. My The GUI looks nice, and I am really liking what I see of the heresy engine. Sounds like it's very open source too. Have you decided on a license for it? If so, which one?Tom S wrote:Damn. I thought this version worked with ATIs :( If I only had one at home... This must still be a problem with SDL vs ATI drivers. It worked on ALL nVidia cards I could test it with, from TNT2 to GF6800. You might try reinstalling your drivers or getting a more recent SDL version (1.2.7 is packaged with the demo - the most recent is 1.2.9). Sorry for it :/ BTW the space-in-path problem is also only indirectly related to my engine. I'm using DMD for shader compilation and IIRC dmd doesn't like to be in a path with spaces. Or was it about build... I dunno. Nevertheless it would complain about being unable to compile a shader if that was the issue. Now it seems as SDL is still causing me trouble. Can anybody else test it on an ATI card ?Ok... here's a link (3MB): http://158.75.59.9/~h3/download/smallTest.rar It's not the same app as in test5.rar nor is it my most recent code. The latest code doesn't work, because of me doing some hack'n'slash on it ;) It should work on ATI carts, at least it worked when I tested it :). Oh, and make sure to extract files to a directory without a space in its path. I'll make a workaround later.Still crashes, unfortunately. Same error. Crashes after printing "Creating a Window". The directory it's under is C:\Loadz\D_Language\heretic\smallTest\ where _ IS an underscore, so no spaces.
Dec 16 2005
Chad J wrote:OK I ran techdemo5, publicRelease (mirror one), and smallTest on another computer. The other comp is an ATI All-in-wonder 9600. Techdemo and publicRelease seemed to run fine. smallTest crashed however, and the error is a different one. It went like this: ... Renderer initialized compiling shaders\simpleHFileter.shader retcode: 1 ********** Heresy Engine Error Handler ********** *Exception caught (CompileException) : Compilation error. See shaders\simpleHFilter.compile.log for detailsJust check the log file. It will probbly complain about being unable to find a file. If that's true, then you've probably extracted the demo to a directory whose path contains a space. I'm running DMD from within the engine in order to dynamically compile shaders and either DMD doesn't like spaces or I'm doing something wrong with it ;)Hey if you happen to use AIM or ICQ instant messagers, you could message me when I'm around and whenever you have a new compilation that needs testing. As long as I'm not too busy or afk I can give it a whirl. MyMy ICQ == 315344462 Thanks for offering help :)The GUI looks nice, and I am really liking what I see of the heresy engine. Sounds like it's very open source too. Have you decided on a license for it? If so, which one?Not sure about it yet. I've heard the Zlib is nice. Any suggestions ? -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/M d-pu s+: a-->----- C+++$>++++ UL P+ L+ E--- W++ N++ o? K? w++ !O !M V? PS- PE- Y PGP t 5 X? R tv-- b DI- D+ G e>+++ h>++ !r !y ------END GEEK CODE BLOCK------ Tomasz Stachowiak /+ a.k.a. h3r3tic +/
Dec 16 2005
Just check the log file. It will probbly complain about being unable to find a file. If that's true, then you've probably extracted the demo to a directory whose path contains a space. I'm running DMD from within the engine in order to dynamically compile shaders and either DMD doesn't like spaces or I'm doing something wrong with it ;)Hehe yep that's it. Got me :) Well, I did away with the spaces and got another error for you: retCode: 0 ~Camera Scene Loaded CPU Speed: 3.00 GHz calling shader.fillCache (obj-c54a00, params=c58a00) Access Violation filling the index cache Exception caught while executing a pipeline node: DrawOp ********** Heresy Engine Error Handler ********** *Exception caught (Exception) : Access ViolationNot sure about it yet. I've heard the Zlib is nice. Any suggestions ?Nope sorry. I'm still pretty new to this, so I only know it from the consumer point of view - get license name, look it up, and try for an explanation or else read the legalese.
Dec 16 2005
I just wanted to clarify some things about Terra... The point of Terra is to make it easy to make an application that uses 2D and or 3D (together). It has advanced systems for loading and displaying images, loading fonts and rendering text and it's all designed for high performance apps. I say APPLICATION because Terra is designed to have 1 or more windows which interact with other windows in a desktop gui, like file and internet browsers or whatever. SDL handles windows like crap. There are no platform independent ways to do allot of really common and needed things when making a Windowed application. They say this is so it can be SUPER CROSS PLATFORM - but it's lame to bother with Amiga compatibility when you are programming a 3D app that needs a modern graphics card, which Amiga does NOT support. NOW - Terra has an interface system, meaning it has a basic WIDGET class and an INTERFACE class which contains a tree structure of WIDGETs.. You can make your own WIDGETS, and as I develop Terra the widget's become easier and easier to make as I am simplifing common tasks into object oriented solutions. If someone wanted to make some widgets for Terra, they would only need to know OpenGL if they wanted to do something more advanced than drawing images and text. ALSO - I am of course working on Terra and Titan at the same time, and the lack of source in the SVN was originally a mishap - but now I am working on another (perhaps one of the last) major modifications to the system, allowing ANYTHING to be animated without any unnessecary additional overhead, using advanced time-scaled tweening and a new system for connecting VALUE classes, which are templated numeric values with common functionality built in and the ability to link things together and keep sync throughout the app without any addition programming. Its a complex problem I have been solving with a simplified solution, and pending a few more glitches to work out, the system should prove massively beneficial to making a Terra GUI dramtically more dynamic with very little additional effort by the developer. Other things that are cookin in my lab over here are to do with Titan, and the newly developed Titan Planning Committee (http://www.sequenceartworks.com/labs/titan/index.php) where people like us can get together and come to a consnsus on whats the best idea for each step of the way. Because I am not stupid enough to think I know how to write the perfect kernel on my own, much less plan it all out on my own. Planning is a BIG step and I value the views of others, and have so far used almost every idea I have been given. THANK YOU to those who are helping and THANK YOU in advance for those who ever will. FINALLY - I have been working on some very ground breaking physics experiments which could be very usefull if my designs pan out. Thanks for reading this crap - hope it lets you all in on what's goin down and what Terra is and is not... Thanks, Trevor Parscal
Dec 17 2005
Chad J wrote:or anything else. That said, I will need a GUI toolkit for any game I want to make in D. It has to use OpenGL, unless someone can tell me how to make OpenGL and some other GUI lib using a different renderer work in harmony in the same app, on the same window. So far I have been unable to find any GUI libs that will work with both D and OpenGL, and I was wondering if one is available or in the works. If there isn't a good OpenGL GUI around that works in D, I am probably going to code one myself. I've decided that it would probably be easier to just port some C++ code from one of the OpenGL GUI libraries rather than do it from scratch. One I am particularly interested in is CEGUI, or Crazy Eddie's GUI System (http://www.cegui.org.uk/modules/news/). So far I like it. It is skinnable, uses XML for said skinning, seems straightforward enough, and is used in games. One thing caught my attention though: CEGUI can use different renderers to display the GUI. It made me start to think, why not have a GUI that can use any renderer or basic API? I get the feeling that most of the code in a GUI library deals with its behavior, accepting inputs, and deciding where to draw images, and only a small fraction is dedicated to actually rendering the images. I'm thinking it might be possible to make a layer that would work between the GUI and the renderer, and allow people to write modules for the GUI system that tell it how to handle rendering. That way all of the GUI code would be reused, and people who want a different API/renderer would just need to tell the GUI system how to draw an image to the screen. Another problem I see with GUI lib reliance on APIs is input. CEGUI handled that by having the coder inject mouse/keyboard events into it. Such a library could have little or no reliance on any API, native or otherwise. Please correct me if I'm wrong, or let me know if this sort of thing is happening already. One last thing - I am unable to find a "search" option on this forum/newsgroup. Is there an easier way to look for things besides looking through the forum one page at a time?Check out this C version of something close to what you're looking for. The code is almost guaranteed not to compile as-is, but it is valid code taken straight from a project of mine. I can provide you the entire project (I've been meaning to release it open-source anyway) soon if you're interested. The main stuff you'll want to check out is in glwindows.c, which has all the OpenGL calls to render the windows, controls, handle clicks, push buttons, call event handlers - everything. It's not as nice as I would've liked it to be, but it definitely got the job done for my purposes (a map editor which was really quite impressive). It sports a very rudimentary set of controls: button, label, panel, checkbox, radiobutton, and window. It is all mouse-driven, no keyboard event handler yet since there isn't any control which requires keyboard input. I meant to add a textbox control in order to get basic keyboard support in... Also, the code is not dependent on any API for mouse events - there is an 'OnMouseDown' function and an 'OnMouseUp' function which should be called when the mouse click goes down and when the mouse click is released, respectively. The glwindows.h header declares three extern variables which must be defined: 'GUITexture', 'Window', and 'Mouse'. The 'GUITexture' is simply a GLUint which is a texture handle generated from glTexImage2D and the like. Gen some textures, load em up, and set that ID. The 'Mouse' is a simple struct defining X and Y coords for the mouse cursor and the button status. These fields are to be set by the host application whenever the appropriate mouse move and click events are received. The code is attached with most of the supporting files. I'll see what I can do in the mean time about porting it to D; it doesn't look that hard. P.S. - it's "skinnable" in that you can load up different textures to define how the controls and windows appear (see GUIwood.tga vs. GUIstone.tga). Hope this helps. P.P.S. - the image files will be attached in a reply-to post.
Dec 14 2005
James Dunne wrote:Chad J wrote:As promised, the related image files.I have decided that I want to write my computer games in D, instead of or anything else. That said, I will need a GUI toolkit for any game I want to make in D. It has to use OpenGL, unless someone can tell me how to make OpenGL and some other GUI lib using a different renderer work in harmony in the same app, on the same window. So far I have been unable to find any GUI libs that will work with both D and OpenGL, and I was wondering if one is available or in the works. If there isn't a good OpenGL GUI around that works in D, I am probably going to code one myself. I've decided that it would probably be easier to just port some C++ code from one of the OpenGL GUI libraries rather than do it from scratch. One I am particularly interested in is CEGUI, or Crazy Eddie's GUI System (http://www.cegui.org.uk/modules/news/). So far I like it. It is skinnable, uses XML for said skinning, seems straightforward enough, and is used in games. One thing caught my attention though: CEGUI can use different renderers to display the GUI. It made me start to think, why not have a GUI that can use any renderer or basic API? I get the feeling that most of the code in a GUI library deals with its behavior, accepting inputs, and deciding where to draw images, and only a small fraction is dedicated to actually rendering the images. I'm thinking it might be possible to make a layer that would work between the GUI and the renderer, and allow people to write modules for the GUI system that tell it how to handle rendering. That way all of the GUI code would be reused, and people who want a different API/renderer would just need to tell the GUI system how to draw an image to the screen. Another problem I see with GUI lib reliance on APIs is input. CEGUI handled that by having the coder inject mouse/keyboard events into it. Such a library could have little or no reliance on any API, native or otherwise. Please correct me if I'm wrong, or let me know if this sort of thing is happening already. One last thing - I am unable to find a "search" option on this forum/newsgroup. Is there an easier way to look for things besides looking through the forum one page at a time?Check out this C version of something close to what you're looking for. The code is almost guaranteed not to compile as-is, but it is valid code taken straight from a project of mine. I can provide you the entire project (I've been meaning to release it open-source anyway) soon if you're interested. The main stuff you'll want to check out is in glwindows.c, which has all the OpenGL calls to render the windows, controls, handle clicks, push buttons, call event handlers - everything. It's not as nice as I would've liked it to be, but it definitely got the job done for my purposes (a map editor which was really quite impressive). It sports a very rudimentary set of controls: button, label, panel, checkbox, radiobutton, and window. It is all mouse-driven, no keyboard event handler yet since there isn't any control which requires keyboard input. I meant to add a textbox control in order to get basic keyboard support in... Also, the code is not dependent on any API for mouse events - there is an 'OnMouseDown' function and an 'OnMouseUp' function which should be called when the mouse click goes down and when the mouse click is released, respectively. The glwindows.h header declares three extern variables which must be defined: 'GUITexture', 'Window', and 'Mouse'. The 'GUITexture' is simply a GLUint which is a texture handle generated from glTexImage2D and the like. Gen some textures, load em up, and set that ID. The 'Mouse' is a simple struct defining X and Y coords for the mouse cursor and the button status. These fields are to be set by the host application whenever the appropriate mouse move and click events are received. The code is attached with most of the supporting files. I'll see what I can do in the mean time about porting it to D; it doesn't look that hard. P.S. - it's "skinnable" in that you can load up different textures to define how the controls and windows appear (see GUIwood.tga vs. GUIstone.tga). Hope this helps. P.P.S. - the image files will be attached in a reply-to post.
Dec 14 2005
James Dunne wrote:James Dunne wrote:Cool thanks. Keep me posted on how the C -> D conversion goes.Check out this C version of something close to what you're looking for. The code is almost guaranteed not to compile as-is, but it is valid code taken straight from a project of mine. I can provide you the entire project (I've been meaning to release it open-source anyway) soon if you're interested. The main stuff you'll want to check out is in glwindows.c, which has all the OpenGL calls to render the windows, controls, handle clicks, push buttons, call event handlers - everything. It's not as nice as I would've liked it to be, but it definitely got the job done for my purposes (a map editor which was really quite impressive). It sports a very rudimentary set of controls: button, label, panel, checkbox, radiobutton, and window. It is all mouse-driven, no keyboard event handler yet since there isn't any control which requires keyboard input. I meant to add a textbox control in order to get basic keyboard support in... Also, the code is not dependent on any API for mouse events - there is an 'OnMouseDown' function and an 'OnMouseUp' function which should be called when the mouse click goes down and when the mouse click is released, respectively. The glwindows.h header declares three extern variables which must be defined: 'GUITexture', 'Window', and 'Mouse'. The 'GUITexture' is simply a GLUint which is a texture handle generated from glTexImage2D and the like. Gen some textures, load em up, and set that ID. The 'Mouse' is a simple struct defining X and Y coords for the mouse cursor and the button status. These fields are to be set by the host application whenever the appropriate mouse move and click events are received. The code is attached with most of the supporting files. I'll see what I can do in the mean time about porting it to D; it doesn't look that hard. P.S. - it's "skinnable" in that you can load up different textures to define how the controls and windows appear (see GUIwood.tga vs. GUIstone.tga). Hope this helps. P.P.S. - the image files will be attached in a reply-to post.As promised, the related image files.
Dec 15 2005
Of course, there is derelict providing bindings to the famous SDL libraries. Since they lack GUI functions (although there are GUI libs for SDL that you might create bindings for) it probably isn't what you want. -Sebastian Chad J schrieb:or anything else. That said, I will need a GUI toolkit for any game I want to make in D. It has to use OpenGL, unless someone can tell me how to make OpenGL and some other GUI lib using a different renderer work in harmony in the same app, on the same window. So far I have been unable to find any GUI libs that will work with both D and OpenGL, and I was wondering if one is available or in the works. If there isn't a good OpenGL GUI around that works in D, I am probably going to code one myself. I've decided that it would probably be easier to just port some C++ code from one of the OpenGL GUI libraries rather than do it from scratch. One I am particularly interested in is CEGUI, or Crazy Eddie's GUI System (http://www.cegui.org.uk/modules/news/). So far I like it. It is skinnable, uses XML for said skinning, seems straightforward enough, and is used in games. One thing caught my attention though: CEGUI can use different renderers to display the GUI. It made me start to think, why not have a GUI that can use any renderer or basic API? I get the feeling that most of the code in a GUI library deals with its behavior, accepting inputs, and deciding where to draw images, and only a small fraction is dedicated to actually rendering the images. I'm thinking it might be possible to make a layer that would work between the GUI and the renderer, and allow people to write modules for the GUI system that tell it how to handle rendering. That way all of the GUI code would be reused, and people who want a different API/renderer would just need to tell the GUI system how to draw an image to the screen. Another problem I see with GUI lib reliance on APIs is input. CEGUI handled that by having the coder inject mouse/keyboard events into it. Such a library could have little or no reliance on any API, native or otherwise. Please correct me if I'm wrong, or let me know if this sort of thing is happening already. One last thing - I am unable to find a "search" option on this forum/newsgroup. Is there an easier way to look for things besides looking through the forum one page at a time?
Dec 15 2005
Sebastian Beschke wrote:Of course, there is derelict providing bindings to the famous SDL libraries. Since they lack GUI functions (although there are GUI libs for SDL that you might create bindings for) it probably isn't what you want.I am actually using derelict. It is great, has a lot of good bindings in one spot. So yeah, I pretty much have my API/renderer (SDL/OpenGL) chosen already and am looking for a GUI lib that will work with that.
Dec 15 2005
If there isn't a good OpenGL GUI around that works in D, I am probably going to code one myself. I've decided that it would probably be easier to just port some C++ code from one of the OpenGL GUI libraries rather than do it from scratch. One I am particularly interested in is CEGUI, or Crazy Eddie's GUI System ...http://www.asahi-net.or.jp/~cs8k-cyu/index_e.html there are 5 games on this site coded in D, and they all come with full source code. He uses and SDL library ported to D. The game Gunroar compiles easily with the latest version of dmd, but the other games used older versions of the compiler and don't compile without changing the code a little bit. I don't know the legality of using this code, you probably need to contact the guy who wrote them. P.S. Tumiki Fighters is fun ;) Chris
Dec 15 2005