FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Derelict Additions

 
Post new topic   Reply to topic     Forum Index -> Derelict
View previous topic :: View next topic  
Author Message
aldacron



Joined: 05 May 2004
Posts: 1066
Location: Seoul, South Korea

PostPosted: Wed Feb 22, 2006 6:39 am    Post subject: Derelict Additions Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
JJR



Joined: 22 Feb 2004
Posts: 1104

PostPosted: Wed Feb 22, 2006 1:00 pm    Post subject: Reply with quote

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
View user's profile Send private message
clayasaurus



Joined: 21 May 2004
Posts: 857

PostPosted: Wed Feb 22, 2006 9:18 pm    Post subject: Re: Derelict Additions Reply with quote

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
View user's profile Send private message AIM Address
aldacron



Joined: 05 May 2004
Posts: 1066
Location: Seoul, South Korea

PostPosted: Thu Feb 23, 2006 3:20 am    Post subject: Re: Derelict Additions Reply with quote

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
View user's profile Send private message Send e-mail Visit poster's website
h3r3tic



Joined: 30 Mar 2004
Posts: 265
Location: Torun, Poland

PostPosted: Thu Feb 23, 2006 4:07 am    Post subject: Re: Derelict Additions Reply with quote

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 Very Happy

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 Wink

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 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


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 Very Happy
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
JJR



Joined: 22 Feb 2004
Posts: 1104

PostPosted: Thu Feb 23, 2006 11:47 am    Post subject: Reply with quote

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
View user's profile Send private message
aldacron



Joined: 05 May 2004
Posts: 1066
Location: Seoul, South Korea

PostPosted: Fri Feb 24, 2006 5:55 am    Post subject: Re: Derelict Additions Reply with quote

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 Wink


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 Very Happy


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
View user's profile Send private message Send e-mail Visit poster's website
JoeCoder



Joined: 29 Oct 2005
Posts: 216
Location: Indiana, USA

PostPosted: Sun Mar 05, 2006 5:15 pm    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website Yahoo Messenger
h3r3tic



Joined: 30 Mar 2004
Posts: 265
Location: Torun, Poland

PostPosted: Sun Mar 05, 2006 5:20 pm    Post subject: Reply with quote

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 Smile 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 Smile Nice to hear someone is doing shaders with D Smile Have you got any nice screenies to show off ? Cool
/+ I'm inserting too many smileys, am I not ? +/
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
JoeCoder



Joined: 29 Oct 2005
Posts: 216
Location: Indiana, USA

PostPosted: Sun Mar 05, 2006 11:08 pm    Post subject: Reply with quote

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 Shocked.
Back to top
View user's profile Send private message Visit poster's website Yahoo Messenger
JJR



Joined: 22 Feb 2004
Posts: 1104

PostPosted: Thu Mar 09, 2006 10:10 pm    Post subject: Reply with quote

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
View user's profile Send private message
h3r3tic



Joined: 30 Mar 2004
Posts: 265
Location: Torun, Poland

PostPosted: Fri Mar 10, 2006 12:40 am    Post subject: Reply with quote

Sure I did, John. But I didnt want to hijack this thread so I sent him a PM with some feedback Razz
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
kaarna



Joined: 03 Apr 2006
Posts: 84
Location: Finland

PostPosted: Sun Sep 10, 2006 12:08 pm    Post subject: Re: Derelict Additions Reply with quote

h3r3tic wrote:

...
then I'll try to squeeze out some time and finish the ODE binding.

...

grab 'em here: http://158.75.59.9/~h3/code/heresy/ODE.zip
...



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
View user's profile Send private message Visit poster's website AIM Address MSN Messenger
h3r3tic



Joined: 30 Mar 2004
Posts: 265
Location: Torun, Poland

PostPosted: Sun Sep 10, 2006 3:19 pm    Post subject: Reply with quote

Sorry for that, that one server where I had my files hosted is currently down. I've uploaded what I believe was the ODE.zip to my univ account:
http://www-users.mat.uni.torun.pl/~h3r3tic/ODE.zip
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> Derelict All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
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