| View previous topic :: View next topic |
| Author |
Message |
aldacron
Joined: 05 May 2004 Posts: 1066 Location: Seoul, South Korea
|
Posted: Wed Feb 22, 2006 6:39 am Post subject: Derelict Additions |
|
|
I've thought about it long and hard, and I have decided to make some massive additions to the Derelict packages. This reflects fundamental shift in the Derelict concept. I will be adding an option to use all Derelict packages with import libraries. When compiling, the current setup will be the default (i.e. loading import libraries manually through DerelictXX_Load). By supplying a version statement to the command line, Derelict packages can be built so that they can be used with import libraries. It will be up to the use to supply the correct import library in the correct format when building an application in such a case.
Also, I will be updating DerelictGL with all API features up to 2.0. This will also be implemented in version blocks. OpenGL 1.1 will be the default and version switched can be used for GL 1.2, 1.3, 1.4, 1.5, and 2.0.
This is rather large amount of work, and as usual I will be getting to it as I can. Don't expect it to be done any time soon. In addition to the code that needs to be added, I need to rewrite large portions of the documentation. So until this all gets done, there will be a freeze on new packages (there are a couple in the pipe, including Lua - no Clay, I haven't forgotten).
I'm still trying to work out the easiest way to support OpenGL extensions. Once the current focus is out of the way, that's where I am going to turn my attention. My current train of thought is to add one module per extension with the appropriate declarations. Perhaps in a new package. Then, to use a particular extension you would import the appropriate module, attempt to load it, test for its availability and use it:
| Code: |
import derelict.opengl.gl.ext.extname;
DerelictGL_ExtName_Load();
if(ExtName_Supported()) { ... // use it }
|
Comments on all of this are welcome. |
|
| Back to top |
|
 |
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Wed Feb 22, 2006 1:00 pm Post subject: |
|
|
First comment:
Great idea!
I still am interested in seeing freetype and ode in there... perhaps sometime down the road; I'm still pretty busy with other things ATM.
But I'm glad to see you planning these improvements. I think these additions will make Derelict more attractive (especially with OpenGL 2.0) and flexible to developers.
-JJR |
|
| Back to top |
|
 |
clayasaurus
Joined: 21 May 2004 Posts: 857
|
Posted: Wed Feb 22, 2006 9:18 pm Post subject: Re: Derelict Additions |
|
|
I think supporting OpenGL 2.0 is a good idea, although havn't you tried this in the past and ran into problems on linux with glee and then decide it wasn't worth it?
I have no comment on import libraries or extensions since I myself have no need of them.
Goodluck on this, glad to see lua is in your queue still.
~ Clay |
|
| Back to top |
|
 |
aldacron
Joined: 05 May 2004 Posts: 1066 Location: Seoul, South Korea
|
Posted: Thu Feb 23, 2006 3:20 am Post subject: Re: Derelict Additions |
|
|
| clayasaurus wrote: | | havn't you tried this in the past and ran into problems on linux with glee and then decide it wasn't worth it? |
Right, I've actually made two attempts. The very first was a custom solution that wasn't well implemented (it was monolithic - all extensions were loaded all the time with no option to cherry pick). The second was with GLee, and the issues were with GLee itself. This time I'm going back to a custom solution, but one that is much more flexible than the one I first tried. I don't foresee any problems this time around. |
|
| Back to top |
|
 |
h3r3tic
Joined: 30 Mar 2004 Posts: 265 Location: Torun, Poland
|
Posted: Thu Feb 23, 2006 4:07 am Post subject: Re: Derelict Additions |
|
|
| aldacron wrote: | | Also, I will be updating DerelictGL with all API features up to 2.0. This will also be implemented in version blocks. OpenGL 1.1 will be the default and version switched can be used for GL 1.2, 1.3, 1.4, 1.5, and 2.0. |
Excellent
| aldacron wrote: |
| Code: |
import derelict.opengl.gl.ext.extname;
DerelictGL_ExtName_Load();
if(ExtName_Supported()) { ... // use it }
|
|
You probably realize that, but remember that each rendering context has to load its extension separately. So I guess this code will be a little longer
I'm probably uneducated in this manner, but what's the big deal with loading extensions one-by-one ?
| JJR wrote: |
I still am interested in seeing freetype and ode in there... perhaps sometime down the road; I'm still pretty busy with other things ATM.
|
I'm having my last exam on Monday, then I'll try to squeeze out some time and finish the ODE binding. What bothers me about ODE is its lack of support. There have been very little changes done to this engine during the last 2 years and I don't see this as a GoodThing (It's not rock-solid, you know...). I've been thinking more and more about making a wrapper for some other dynamics engine, like Novodex (free for non-commercial use) or Newton (it's been gaining some popularity recently, though its performance still leaves much to wish for). That's one of the reasons why ODE is not in Derelict yet Still, if you're interested in non-Derelictified bindings (yet with dynamic loading), grab 'em here: http://158.75.59.9/~h3/code/heresy/ODE.zip
BTW, Mike, Any clues on how the Derelict-ified modules will look like now ? I'd like to make my bindings as similar to what you're planning to take some work off your shoulders and obviously - make my modules' integration quicker  |
|
| Back to top |
|
 |
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Thu Feb 23, 2006 11:47 am Post subject: |
|
|
| h3r3tic wrote: |
I'm having my last exam on Monday, then I'll try to squeeze out some time and finish the ODE binding. What bothers me about ODE is its lack of support. There have been very little changes done to this engine during the last 2 years and I don't see this as a GoodThing (It's not rock-solid, you know...). I've been thinking more and more about making a wrapper for some other dynamics engine, like Novodex (free for non-commercial use) or Newton (it's been gaining some popularity recently, though its performance still leaves much to wish for). That's one of the reasons why ODE is not in Derelict yet Wink Still, if you're interested in non-Derelictified bindings (yet with dynamic loading), grab 'em here: http://158.75.59.9/~h3/code/heresy/ODE.zip |
I remember you were the one that made the ODE bindings. I didn't know that ODE wasn't perfectly reliable. Good to know! I'll have to take a peek at the other engines. ODE looked promising, although, I didn't really like the naming convention of the API.
I still think we should get Freetype in there, though.
-JJR |
|
| Back to top |
|
 |
aldacron
Joined: 05 May 2004 Posts: 1066 Location: Seoul, South Korea
|
Posted: Fri Feb 24, 2006 5:55 am Post subject: Re: Derelict Additions |
|
|
| h3r3tic wrote: | You probably realize that, but remember that each rendering context has to load its extension separately. So I guess this code will be a little longer  |
I actually didn't think of that at all. I've always thought of thing in terms of how I use OpenGL. Multiple contexts never crossed my mind. So, there will need to be some more consideration given to this. I wonder if this also applies to OpenGL 1.2+ routines on Windows since they must be loaded through the extension mechanism. If so, that will need to be reconsidered as well.
| Quote: | | I'm probably uneducated in this manner, but what's the big deal with loading extensions one-by-one ? |
Options. It's one of those things were there are two distinct philosophies - just load them all at once, or only load the ones you need. In this case, it's easy enough to support both camps.
| Quote: | BTW, Mike, Any clues on how the Derelict-ified modules will look like now ? I'd like to make my bindings as similar to what you're planning to take some work off your shoulders and obviously - make my modules' integration quicker  |
I just committed a first pass at DerelictAL. Give it a look-see. Basically I broke out the existing function declaration into a module named almanual.d and added the new ones to a module named alstatic.d. Each is protected by version(DerelictAL_Static)...else statements. Then al.d publicly imports all of the type modules (as before) along with the appropriate function declaration module based on the version (almanual by default). In this particular case, I also ditched the alu.d module so that all function declarations are in the same files.
So far I've only compiled the default settings and haven't tested the resulting lib. I also haven't yet configured the build scripts to account for the static version.
Oh, and I just realized I haven't updated my DMD in a while. I'm still using 0.143, so nothing at all is tested with the latest version. |
|
| Back to top |
|
 |
JoeCoder
Joined: 29 Oct 2005 Posts: 216 Location: Indiana, USA
|
Posted: Sun Mar 05, 2006 5:15 pm Post subject: |
|
|
I just downloaded the latest version of Derelict and noticed there's still no support for OpenGL extensions. However, for the past few months I've been using a slightly modified version of glext.d from the fragbots source.
It seems to be complete and mostly up-to-date and I'm able to easily use any extionsion as seen below.
| Code: | glCreateShaderObjectARB = cast(pfglCreateShaderObjectARB)SDL_GL_GetProcAddress("glCreateShaderObjectARB");
|
I've also had great success with GLslang vertex and fragment shaders, as well as older things like vertex buffer objects. Perhaps we could ask permission to include it in derelict, since for me it was as simple as dropping it in, and it works quite well on Linux. |
|
| Back to top |
|
 |
h3r3tic
Joined: 30 Mar 2004 Posts: 265 Location: Torun, Poland
|
Posted: Sun Mar 05, 2006 5:20 pm Post subject: |
|
|
| JoeCoder wrote: | | I've also had great success with GLslang vertex and fragment shaders, as well as older things like vertex buffer objects. Perhaps we could ask permission to include it in derelict, since for me it was as simple as dropping it in, and it works quite well on Linux. |
Hey, on problem with its inclusion/modification or whatsoever Do anything that you like with it, it's just nVidia's glext.h processed with some regexp. But it still doesn't know about rendering contexts and it tries loading everything at once, while Mike wants to be able to specify which exts to load one-by-one Nice to hear someone is doing shaders with D Have you got any nice screenies to show off ?
/+ I'm inserting too many smileys, am I not ? +/ |
|
| Back to top |
|
 |
JoeCoder
Joined: 29 Oct 2005 Posts: 216 Location: Indiana, USA
|
Posted: Sun Mar 05, 2006 11:08 pm Post subject: |
|
|
I know it's not the thread for this, but since you asked, you can try out two demos I've made using my 3D engine.
This one (link) was a test of how many objects I could have in my scene at once (50K), while this one (link) shows off 64 simultaneous spotlights (a disco scene). Neither of these use shaders, and although I have a nice xml based material system, I haven't spent the time to write anything nifty--I'm still going through the orange book learning what I need to. However, I think the current builds still require hardware with shaders, even though they're not being used.
Development has been going great. I'll probably eventually setup a website for it and host the source and forums from this site, but at this point of the development I'm not ready to get other programmers involved just yet. I'd drive them mad with my continual refactoring . |
|
| Back to top |
|
 |
JJR
Joined: 22 Feb 2004 Posts: 1104
|
Posted: Thu Mar 09, 2006 10:10 pm Post subject: |
|
|
Tom? Did you take a look at JoeCoders yage thing? That's pretty nifty!
Nice work JoeCoder! We need more samples like that to show off D.
-JJR |
|
| Back to top |
|
 |
h3r3tic
Joined: 30 Mar 2004 Posts: 265 Location: Torun, Poland
|
Posted: Fri Mar 10, 2006 12:40 am Post subject: |
|
|
Sure I did, John. But I didnt want to hijack this thread so I sent him a PM with some feedback  |
|
| Back to top |
|
 |
kaarna
Joined: 03 Apr 2006 Posts: 84 Location: Finland
|
Posted: Sun Sep 10, 2006 12:08 pm Post subject: Re: Derelict Additions |
|
|
Sorry for cross-posting http://www.dsource.org/forums/viewtopic.php?p=10909#10909, but how are the ODE bindings?
It seems that the link by h3r3tic doesn't work anymore. And there's no mention of ODE in the Bindings SVN or Derelicts.
Let me know if you can put ODE somewhere. Any version would be appreciated. |
|
| Back to top |
|
 |
h3r3tic
Joined: 30 Mar 2004 Posts: 265 Location: Torun, Poland
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|