Amiga.org
Operating System Specific Discussions => AROS Research Operating System => Topic started by: Karlos on September 14, 2003, 08:35:28 PM
-
Hi dudes :-)
In my long term goal to take over the world and create an cross platform OOP framework in C++, where would I find the developer info for AROS?
Im interested primarily in its low level API's for sound, graphics and IO.
I understand much of this is source compatible with amigaOS 3.1 but what 'AROS only' performance enhancements might my code be able to take advantage of? My aim is to ensure that each platforms class implementations are as efficient as possible.
Please bear in mind that I don't know a great deal about AROS at the moment but intend to investigate it thoroughly later...
-
I'm no dude, but maybe aros.org can help.
-
My programming abilities are limited to Pascal, but http://www.aros.org/documentation/developers/application-development.php (http://www.aros.org/documentation/developers/application-development.php) might be good...
-
Im interested primarily in its low level API's for sound, graphics and IO.
Whoa, of all the APIs you could have mentioned, those are the least mature of AROS :-) sound: started (I think); graphics: Well, GUI stuff should be ok, but there's no decent graphics HIDD yet AFAIK; IO - not sure about that, they're starting on PCI stuff right now actually..
Join the dev list, read back a few months, the website has some good docs too.
By the way, what's wrong with http://www.wxwindows.org ?
C++ bindings, cross platform goodness... from what I've read it's written using as much C++ as reasonably possible, but the emphasis is allowing wxwindows to compile on heaps (and I mean HEAPS) of different non-gcc compilers so some aspects of C++ aren't utilised... can't really give an example right now... hrmm.
- Paul
-
Oh and BTW, wxWindows would be in my top 5 things to port list when I get an A1 with OS4.. also in that list: GTK, Anjuta/GCC3.2 suite, a good X server, a good SSH client (putty?), Abiword...
I'm dreaming there, but I'd probably start with putty :-)
As for the GNU dev stuff, I was thinking that perhaps the cygwin code base would be a good start, seeing as it works on Win98 it shouldn't be that hard to get it working on Amiga (from the point of view of being a single user environment) but then again I have no idea how all the libs are implimented, or even how Amiga libs work since I'm not an experienced Amiga coder at all.
- Paul
-
I'm sure vxwindows is just fine. As for the why, well this project is a pet of myself and some like minded friends who only ever wanted to write games :-)
Actually, what were is aiming for is to create a low overhead C++ interface to common OS features. It isn't aimed at providing high level interfaces (ie encapsulating the OS GU), rather it is designed for performance. In other words, gaming and multimedia :-) Similar in intent to SDL but aimed soley at C++.
There are several libraries, in different stages of completion:
systemlib (memory, threading, locking, timers etc.)
gfxlib (pixels, surfaces, displays, blits, 3D rasterizer, drawing classes etc.)
iolib (file io, input devices, event filtering etc.)
guilib (abstract gui control framework, experimental)
soundlib (not started yet)
netlib (not started yet)
The code is split into 2 parts - system independent code and system dependent code. Only truly OS independent code is allowed in the former section for cleanliness. One of the design aims is that no system defined behaviour or data is present in the user APIs. Code using only the provided classes (and derived from them) should ideally compile 'out of the box'.
The latter section of the code has an OS tree and the implementation level classes are free to utilize as much of a given OS's functionality as they can to provide performance as long as the overall expected behaviour is maintained.
Naturally, the amigaos tree is the most developed, but there is a guy working on the winblows2k part of the OS tree and another who hopefully will start the macosx part in the not too distant :-)
This brings me to my current problem. Currently all the work has been done in storm but it is being moved to gcc 2.95.3 as a minimum compiler spec largely because storm lacks some features (reliable templates, namespaces, thread safe exceptions etc) that caused me to make some awkward design descisions a while back.
By moving to gcc I aim to clean up some of the encapsulation (using namespaces) and also to make the code more accessible on other platforms.
Once the whole project is at an acceptable state of completion no doubt it will go open source ;-)
-
Just gonna give a few pointers here!
Sound: we have AHI but missing drivers
Gfx:Again missing drivers (commong thing with aros as we have few hardware coders in fact 2 of them and one is busy porting AROS to Pegasos and the other to busy with his work)
as for finding dev information check the webpage,join the dev list or for a conversation come to our irc channel if your used to IRC that is ;).
-
Sounds great! I would have loved to say that I could help with the Linux implimentation specifics, but I already committed to AROS months ago and I still havent' written a single line of code for those guys yet ;-(
Never thought I'd say this.. but I can't wait 'till I get a job, I'll have more free time, hmmm. Provided I'm not self employed and only do 40 hours a week, which I'm sure is never the case...
- Paul
-
Im interested primarily in its low level API's for sound, graphics and IO.
I understand much of this is source compatible with amigaOS 3.1 but what 'AROS only' performance enhancements might my code be able to take advantage of? My aim is to ensure that each platforms class implementations are as efficient as possible.
In terms of API's:
Sound = AHI (no paula audio.device though)
Graphics = graphics.library, Cybergraphics.library, AROS HIDD
I/O = Standard Amiga 3.1 IO systems :-)
There aren't any AROS specific enhancements, but our OOP based driver system, I'm reliably informed, will allow Hardware acceration (from the Graphics card, once suitable drivers have been made for example) to be avaiable via the CGX.library, again for example...
-
Thanks.
I should sign up on your dev list at some point I guess :-)
-
I should sign up on your dev list at some point I guess :-)
You should, it's quite an interesting place :-)
-
Someone should port the Mono framework to AROS.. and bypass much of the issues and provide an OOP evironment... It would give us a C# and VB like BASIC compiler... Also it would give us a very nice non-oop restricted environment that's cross platform..
http://www.go-mono.com/ (http://www.go-mono.com/)
-
whabang wrote:
My programming abilities are limited to Pascal, but http://www.aros.org/documentation/developers/application-development.php (http://www.aros.org/documentation/developers/application-development.php) might be good...
I want a Pascal compiler for AROS :-D
Edit: ...Okay someone called David Somerton was working on one. What happened?
-
by DonnyEMU on 2003/10/9 6:00:40
Someone should port the Mono framework to AROS.. and bypass much of the issues and provide an OOP evironment... It would give us a C# and VB like BASIC compiler... Also it would give us a very nice non-oop restricted environment that's cross platform..
Problem is, that's a huge hunking port job to do. I'm sure mono would be nice for AROS, but I rather seem more people jumping in to help out with GCC native port and TCP/IP ports.
Of course, someone could always start up a bounty for mono porting. ;)
Dammy
-
@Karlos
AROS-gcc (actually Linux-gcc started with a small script) does not
support C++ :-x Has something to do with missing link-libs and I ran
into that the hard way ~1 year ago (yeah finally I had everything compiled
only to let the linker show me it's finger :-o ).
Hope that will change someday soon,but don't hold your breath.
@that_pop_girl
Try P2C (under Linux), and compile that for AROS (not tested). :-P
-
by Kronos on 2003/10/9 11:45:12
AROS-gcc (actually Linux-gcc started with a small script) does not support C++ Has something to do with missing link-libs and I ran into that the hard way ~1 year ago (yeah finally I had everything compiled only to let the linker show me it's finger ).
Hope that will change someday soon,but don't hold your breath.
There is indeed a Bounty (http://www.thenostromo.com/teamaros/) (#4) on it. We have one dev looking into it but wants to split it up between C and C++. So far, the reactions aren't positive in splitting up the GCC into C and C++ parts for the bounty.
Dammy
-
by DonnyEMU on 2003/10/9 12:00:40
Someone should port the Mono framework to AROS.. and bypass much of the issues and provide an OOP evironment... It would give us a C# and VB like BASIC compiler... Also it would give us a very nice non-oop restricted environment that's cross platform..
Huh.
As dammy said, it's not a job for a lonely developer ( not even tens of them - they can spend a life on it). And, I never saw Mono in action, but .NET is not so responsive as one can think , i.e not suitable for some serious (i.e big projects )application development with defined responses ...
Second, a .NET Hello world app has a memory footprint of about 10Mb, running under WinXP.
I'm not sure what will be a killer argument for Amiga then ;-)
re
Treke
-
Kronos wrote:
@Karlos
AROS-gcc (actually Linux-gcc started with a small script) does not
support C++ :-x Has something to do with missing link-libs and I ran
into that the hard way ~1 year ago (yeah finally I had everything compiled
only to let the linker show me it's finger :-o ).
Bummer :-( Still, the rate ,y project is running at the moment, aros gcc c++ support may be fixed by the time it's ready to port :-(