[AD] A New Allegro Thread starts here....

[ Thread Index | Date Index | More lists.liballeg.org/allegro-developers Archives ]


Hi,

As we were discussing in #allegro, I put my thoughts down.... I am writing it to this list seeking your response.

Probably I haven't contributed much to Allegro development, and I haven't written any code patches .... So I may be looked upon as a person unfit to make comments on Allegro development, or on Allegro itself. In spite of that, I'm inspired to write this.

I had this question, I asked in #allegro:

What IS Allegro?

1. is Allegro an image loading library, like DEVIL? (No)
2. is Allegro going to turn into a polygon pushing library, like D3D or OpenGL? (no)
3. is Allegro a 2D / primitives library? (good response)
4. is Allegro an input wrapper for keyboards, pointing devices and joysticks? (like DInput) (good response)
5. is Allegro a sound library? (good response)
6. is Allegro an event scheduling/timer library? (mixed response)
7. is Allegro a video playing library? (most answered no)
8. is Allegro going to do CD Audio, Networking, and what not? (no)
9. is Allegro a font library, when compared to D3DFonts, Freetype (no)

I had a few more thoughts on Allegro... If Allegro were low level, it would just push data in and out of the CPU/GPU/Whatever .. then there's no calling it an API, in the real sense (which is an contradiction to Shawn's own thoughts) If it weren't, there ought to be an abstraction API.

And when we say abstraction, we mean EMULATING features when they aren't natively supported by the platform. That includes writing a reference software rasterizer when a low level 3D library isn't available (like OpenGL or D3D) ... Or just dropping it, and let the higher APIs take advantage of Allegro, the way AllegroGL does. This also involves dispatching the software primitives in favour of higher APIs, when available.

End of the day, most of these conflicts simplify to one question: low level or abstract?

If it were low level, it wouldn't make any difference than the OS APIs do. It it were abstract, it won't be the low level library, would it?

I also said in #allegro that the design and specifications aren't available yet. There is no document which states how Allegro should behave, what each function would do, how and when would each function work/fail.

Allegro should be objective driven. Not feature driven. Before writing any code, we need an objective driven design of Allegro, on what it should be and what it should do. Then, the implementations on each platform will follow the rules we set.

--
Karthik
http://guilt.bafsoft.net

Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/