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

The State of Derelict: Seeking Contributions

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



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

PostPosted: Tue Dec 05, 2006 7:59 pm    Post subject: The State of Derelict: Seeking Contributions Reply with quote

Sometime ago I announced that I would be adding an option to Derelict to allow static linkage with import libraries. The concept was implemented in DerelictAL. I was never really 100? confident in that decision. Now, I'm at a point where I've changed my mind again. I'm not going to pursue that direction at all. Doing so definitely breaks one of my goals with Derelict: simplicity. The library doesn't need to be all things to all people. It only needs to achieve the goals I set out for it at the beginning of the project. It does so without the static linkage option, but would add complexity in initial implementation and long-term maintenance of each package. So, that idea is now dead and I don't care to revive it.

I've got some time coming up this month where I will be able to devote some effort to Derelict. There are a couple of things I'd like to get done before DMD 1.0 comes on Jan 1.

First, I'd really like to knock out all of the extensions in DerelictGL. It is my goal to implement every extension that was not incorporated into 1.1 (since 1.1 is the baseline for DerelictGL, it doesn't make sense to add support for extensions like texture objects that were rolled into 1.1). It's not difficult work, just somewhat time-consuming, particularly for someone who isn't well-versed in all the extensions. Because of this, I would be incredibly happy if any of you contribute extension loaders for some of the GL_EXT extensions (following the current framework, of course). I still need to implement a framework for the platform-specific extensions, so I'm not worried about those yet.

Next, I'd like to add some new packages. I've not added any in a while. I'm particularly interested in doing a DerelictFMOD and DerelictFMODEx. I'll handle those on my own. However, I would very much love to include a DerelictPNG and a DerelictJPG for libpng and libjpg. Additionally, if any of you have ideas for packages you'd like to see included, you can suggest them in the forums or go ahead and implement them for submission. As always, I make no promises about whether or not I will include any of them in the trunk, but it doesn't hurt to have them available. As an example, there was a DerelictBASSMOD submission some time ago that I plan to incorporate.

I'm asking for help, particularly with the GL extensions, because I have a great many things to do outside of Derelict. Anything that saves me time is a win, both for me and for the project. Derelict has quite a few users, some of whom have already contributed in different ways. I ask each of you to consider how you could contribute to the project, even if it is only one GL extension module. Starting in January, I'm going to be even busier for a few months, so anything that doesn't make it in this month has a small chance of getting done for a while if I do it all.

So that's it. There aren't going to be any earth-shattering changes to any of the Derelict packages. I think the current framework works well and don't see any need to adjust it. Next year, I might see if there's any way we can make use of new D features, such as tuples, to improve things internally. No rush on that though.

If there's anything you want to see (other than static linkage) or that needs to be fixed soon, now is the time to let me know.
_________________
The One With D | The One With Aldacron | D Bits
Back to top
View user's profile Send private message Send e-mail
quartz



Joined: 02 Jul 2006
Posts: 35
Location: Florida, US

PostPosted: Fri Dec 08, 2006 9:13 pm    Post subject: Reply with quote

Hi aldacron,

Me and a fellow programmer are interested in creating a package for ODE.org. We plan on using ODE for our projects and would like to access them using the Derelict approach plus contribute to Derelict.

I, myself, would wouldn't mind helping you with the extensions if I knew where to start and what exactly you would be looking for. As you said the format is there it's just a matter of doing the extensions. My question would be "how much does one need to know about the an extension to be able to add it to Derelict?". Is it just a bunch of labor or much more?

P.S. I have been using your excellent code for about 6 months now, nice job!

-Will.
Back to top
View user's profile Send private message
JoeCoder



Joined: 29 Oct 2005
Posts: 294

PostPosted: Sat Dec 09, 2006 10:03 am    Post subject: Reply with quote

Might check these out to help you along the way:

http://dsource.org/forums/viewtopic.php?t=619
http://www.dsource.org/forums/viewtopic.php?p=10909

As for adding it to derelict, the best way is probably to look at other derelict code and learn from it. Be careful about when to use extern(C) and extern(Windows) or else you'll get access violations on many of the function calls.
Back to top
View user's profile Send private message
aldacron



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

PostPosted: Sat Dec 09, 2006 4:18 pm    Post subject: Reply with quote

quartz wrote:
Me and a fellow programmer are interested in creating a package for ODE.org. We plan on using ODE for our projects and would like to access them using the Derelict approach plus contribute to Derelict.


DerelictODE would be fantastic.

Quote:
I, myself, would wouldn't mind helping you with the extensions if I knew where to start and what exactly you would be looking for. As you said the format is there it's just a matter of doing the extensions. My question would be "how much does one need to know about the an extension to be able to add it to Derelict?". Is it just a bunch of labor or much more?


You need to know the new constants an extension defines, if any, the new functions it defines, if any, the string identifier of the extension, and the name of the extension. There is a registry of all extensions online at http://www.opengl.org/registry/. A recent version of glext.h is a big help as well.

I should clarify that I will be working backwards from the most recent extensions to the oldest. Asking loosely for contributions like this, with no formal assignments or tracking, will almost certainly result in duplicate effort if several people work on it. But if you start from the oldest, or somewhere in the middle, and just do two or three that chance should be reduced.

Quote:

P.S. I have been using your excellent code for about 6 months now, nice job!


It's the work of several people, so thanks from all of us Smile
_________________
The One With D | The One With Aldacron | D Bits
Back to top
View user's profile Send private message Send e-mail
quartz



Joined: 02 Jul 2006
Posts: 35
Location: Florida, US

PostPosted: Mon Dec 11, 2006 7:58 pm    Post subject: Reply with quote

JoeCoder:
Thanks. I checked out the links and it appears as if that ODE implementation is dead and thanks for the tip on extern. Not worry we should have it going again.

aldacron:
I am going to pull down the lastest and check out the opengl registry. I pulled the glext.h file and will start taking a look at it. For tracking I guess I could post to this thread perhaps?
Back to top
View user's profile Send private message
quartz



Joined: 02 Jul 2006
Posts: 35
Location: Florida, US

PostPosted: Mon Dec 11, 2006 11:32 pm    Post subject: Reply with quote

aldacon,

I compiled Derelict (on linux) with the lastest dmd, bud and Derelict code. I needed to make one change to build_release.txt and build_debug.txt to get the libraries to create. I added the "-op" flag. Without it the .o files go to the current directory. I saw on another thread someone talking about it. Is this something that is missing from the .txt files? I check the trunk online and it is missing in them.

Also, I noticed that sdl mixer.d had a compile error (using dmd .177) warning of:

DerelictSDLMixer/derelict/sdl/mixer.d(122): Error: cannot implicitly convert expression (file) of type char[] to char*

I fixed by adding toStringz() as in:

import std.string;
...
Mix_Chunk* Mix_LoadWAV(char[] file)
{
return Mix_LoadWAV_RW(SDL_RWFromFile(toStringz(file), "rb"), 1);
}

I need to test it but I feel confident as I used it with SDL_Image to load png images.

I also began looking into the opengl extensions and I guess I will pick something in the middle. Wink

Cheers.

-Will.
Back to top
View user's profile Send private message
aldacron



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

PostPosted: Sun Dec 17, 2006 6:13 pm    Post subject: Reply with quote

Thanks. I'll roll the bug fixes in this week.
_________________
The One With D | The One With Aldacron | D Bits
Back to top
View user's profile Send private message Send e-mail
clayasaurus



Joined: 21 May 2004
Posts: 857

PostPosted: Tue Dec 19, 2006 2:37 pm    Post subject: Reply with quote

Aldacron,

I noticed something else in derelict. For some reason code that looks like...

struct MyStruct;

needs to be replaced with

struct MyStruct {}

or else DMD will not recognize the symbols on either windows or linux with the latest (dmd .177) compiler.

To save you time in the future, you also might want to use the -v1 switch to stabalize derelict on D 1.0.
Back to top
View user's profile Send private message AIM Address
alphabeta



Joined: 31 Jul 2006
Posts: 1

PostPosted: Tue Dec 19, 2006 3:05 pm    Post subject: Reply with quote

I've been sitting on a derelictified version of CG for a while.. (1.5, core library, cgfx, cggl (not directx. I'm developing on linux, so they didn't come in my sdk :p)

I've tried to keep to your convention
I did however use typedefs instead of alias for the enums, as I feel alias removes all the typesafety enums provide in the first place, making large libraries harder to use and more bug prone.
I understand why you chose alias though, and can agree with the cause, but at the time I just did it because I felt it better fit my needs.

For all I know, someones already done this. If so, ignore :p If not, I can send it to someone.. don't have a place to put it Smile

PS: This includes the cggl bindings, which required linking to opengl, so I ended up adding the global flag to dlopen, which is not the best solution. If anyone has a better idea, open to it Smile

PPS: This all arose with the help of gregor's bcd tools Smile He made cggl bindings, which were then derelictified into this in order to play better with derelictGL.
Back to top
View user's profile Send private message
aldacron



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

PostPosted: Thu Dec 21, 2006 3:04 am    Post subject: Reply with quote

I'd love to take a look at what you've done. I've never used CG, but as long as there are no special-case issues regarding it's use I won't have any problems adding it to the trunk.
_________________
The One With D | The One With Aldacron | D Bits
Back to top
View user's profile Send private message Send e-mail
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