Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » Allegro 4.9.2 has been released!

This thread is locked; no one can reply to it. rss feed Print
Allegro 4.9.2 has been released!
Elias
Member #358
May 2000

It should not interfere with Allegro 4 - but then, this is just an early WIP version, chances are if you use it for an actual project now, you may have to slightly modify stuff for it to keep working.

Some crucial parts also are still missing, like an OSX display driver, OpenGL support under Windows, sound, and many more...

--
"Either help out or stop whining" - Evert

Todd Cope
Member #998
November 2000
avatar

I won't be starting that project just yet, maybe a version closer to 5.0 will be done by then. My main concern is that I continue to work on old projects after they're finished. I want to be able to work on my old projects when I need to without having to mess around too much.

Evert
Member #794
November 2000
avatar

Unless this was changed, but I have seen no mention of this on the mailing list, 5.0 will have a compatibility layer that will make it easy to compile legacy code using Allegro 4's API - so there would be no real need to have 4.2 and 5.0 installed at the same time.
Note that things such as scrolling the screen or Mode-X may not be supported through the compatibility layer and will always fail, but then again, who uses those things these days?

SiegeLord
Member #7,827
October 2006
avatar

I have a number of questions.

What is the purpose of the DirectX device? I'd assume that most visual output can be handled through OpenGL. I can see that there is no OpenGL under windows, so does this imply that DirectX is a temporary replacement for OpenGL?

Why are there no hardware accelerated primitives besides rectangles and lines? Is it because no one coded them, or because the API may change so much that coding them at this time is unwise?

Feel free to direct me to a mailing list if these things were discussed there.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Milan Mimica
Member #3,877
September 2003
avatar

GameCreator: What you read is probably a 4.3.10 release info.

GameCreator
Member #2,541
July 2002
avatar

That's true, Milan. But I'm assuming that those additions still apply to the current version as well as it says "previous releases on this branch were 4.3.0 and 4.3.1." Doesn't mention removing any features. At least, I'm really hoping that's the case.

Milan Mimica
Member #3,877
September 2003
avatar

When 4.9 branch was called 4.3 branch, 4.3.10+ branch didn't even exist. 4.9 doesn't have a addon subsystem like 4.3.10+ does. We might add one, not sure.

Elias
Member #358
May 2000

4.9 does have an addon system, but only one addon (for loading allegro 4 style bitmap fonts) so far.

--
"Either help out or stop whining" - Evert

Trent Gamblin
Member #261
April 2000
avatar

SiegeLord said:

What is the purpose of the DirectX device?

It's an alternative to the OpenGL driver on Windows (which doesn't exist yet), for people who would rather use Direct3D.

About primitives, we made the choice to defer primitives to an addon. We have very few developers (I think it's just me on the Windows side), so we need to keep the core small so it's maintainable. If someone writes a good primitive addon, it can be included with Allegro as an "official addon".

SiegeLord
Member #7,827
October 2006
avatar

I see. Is it wise to be doing such an addon at this time or should that be delayed until a higher version? I just have a large set of primitive drawing functions that I created for my OpenGL engine and I wanted to see if I could contribute them... and thus my wondering whether I'd need to clone them to DirectX for them to be useful...

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Trent Gamblin
Member #261
April 2000
avatar

Having OpenGL primitives would be more than half the battle, since it is planned to work on Unix, OSX, and Windows. It shouldn't be too hard for me or someone else to port them to D3D. I would say that if they are pure OpenGL, it would probably be safe to add them now. Elias would be the best one to ask about OpenGL though, as he is the one who wrote the XGLX driver. There is also an exnew_opengl.c example, not sure if that made it to 4.9.2, but it's definitely in SVN, that would show you how to make OpenGL calls directly.

Goalie Ca
Member #2,579
July 2002
avatar

I think you'll be pretty safe from any API changes as far as opengl drawing is concerned.

Besides opengl drawing there is also d3d and cpu (memdraw.c) way of drawing primitives. I'll offer to help out with CPU drawing (when i have time).

How about you put together a short proposal or whatever to the allegro developers mailing list.

edit: i would also keep a copy of svn handy ;)

-------------
Bah weep granah weep nini bong!

Elias
Member #358
May 2000

Thomas Harte also posted a software version of a triangle drawer with subpixel precision some time ago, and likely we'll add an al_draw_triangle. I guess a textured version of it also might be nice (trivial with OpenGL/Direct3D of course, but rather hard in software).

--
"Either help out or stop whining" - Evert

Goalie Ca
Member #2,579
July 2002
avatar

What types of primitives? triangles, circles, ellipsoids, and maybe splines?

-------------
Bah weep granah weep nini bong!

SiegeLord
Member #7,827
October 2006
avatar

I have already made all of the primitives that allegro 4.2 does (lines, triangles, polygons, splines, circles, ellipses et al and the do_* versions of most of them) and I plan to make a bunch more, perhaps as an extra addon. Extra stuff like parametric functions, gradient rectangles and circles. I shall make a more complete proposal to the mailing list eventually.

"For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18
[SiegeLord's Abode][Codes]:[DAllegro5]:[RustAllegro]

Neil Walker
Member #210
April 2000
avatar

So one day soon, allegro will be as good as SDL then and all we'll then need is an upgrade and face-lift to allegro.cc to match the depth and community spirit at http://www.libsdl.org/ ;)

btw, is someone writing an old to new conversion script to convert old code to the shiny new system?

I like the new event system, btw, especially as it now looks like there is proper keyboard handling with up/down/repeat :)

Neil.
MAME Cabinet Blog / AXL LIBRARY (a games framework) / AXL Documentation and Tutorial

wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie

Elias
Member #358
May 2000

Old-to-new conversion will be hard, a lot of the old stuff (like all those double buffer or page flipping or video bitmap stuff) simply won't be needed any longer, and input handling, as you say, works now with events. Also there's no more weird timer callbacks or rest(1) calls, just use timer events and get them delivered at µs precision with your program still using only 0% CPU :)

Oh, and the proper SDL community site is of course: http://sdl.cc

--
"Either help out or stop whining" - Evert

Neil Walker
Member #210
April 2000
avatar

Is triple buffering supported, as there's only a flip function. Or does it do the third page internally without you knowing about it?

Quote:

Old-to-new conversion will be hard

if microsoft can do it for VB to vb.net, I'm sure somebody here can do the same ;)

But maybe that'll be a good fruitless exercise for someone, instead of writing a conversion program, write a program that trawls a file and points out what needs to be done or changed?

Neil.
MAME Cabinet Blog / AXL LIBRARY (a games framework) / AXL Documentation and Tutorial

wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie

Milan Mimica
Member #3,877
September 2003
avatar

al_flip_display() may do just anything

Neil Walker
Member #210
April 2000
avatar

by magic? or are there hints available? in windows, for example triple buffering only works in fullscreen so will it automatically try triple if you select fullscreen or will it change from windowed to fullscreen if you hint triple?

Neil.
MAME Cabinet Blog / AXL LIBRARY (a games framework) / AXL Documentation and Tutorial

wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie

GameCreator
Member #2,541
July 2002
avatar

Quote:

one day soon, allegro will be as good as SDL

I sure hope so.

Actually, in the most important respect (ease of use) Allegro is far better than SDL. It just needs to get technologically caught up.

Goalie Ca
Member #2,579
July 2002
avatar

Quote:

if microsoft can do it for VB to vb.net, I'm sure somebody here can do the same ;)

Take keyboard input for instance. How can you possibly translate people's seemingly random placement of if(Key[key_up]) to the new event loop.

Quote:

one day soon, allegro will be as good as SDL

We are aiming for better and easier :-). It is certainly ambitious but it can be done. Take the new timer routines in svn. We're measuring sub-millisecond accuracy for windows and newer linux kernels (the older ones ~ 1.5 milliseconds). You can specify you want to sleep for 1.25ms and it will pretty much do that. For the hardware accelerated blitting example i'm getting just under 3000fps. This is all while using very little CPU time so your laps can stay nice and cool while you game in a meeting or in class ;) Opengl code can be mixed in there without problems as exnew_opengl.c shows us. There is also a d3d example too. The new event loop should provide more structure and ease of use. Whenever you push a button, click a mouse, move a joystick, or set off a timer, the event loop wakes up and goes to work. All you need to do is provide the functions to handle things, like what to do when i click the left-mouse button. If there are no events in the queue it sleeps and doesn't take up any CPU. The structure this provides should help a lot of new programmers organize their code and not make spaghetti out of it like in the old days. Also allegro uses no more global variables and everything is behind a namespace (eg: al_rest(), al_current_time(), al_flip_display()) :D

Quote:

Is triple buffering supported, as there's only a flip function. Or does it do the third page internally without you knowing about it?

Quote:

al_flip_display() may do just anything

I think he means that code for triple buffering can be added without problem but it just isn't implemented yet.

-------------
Bah weep granah weep nini bong!

Neil Walker
Member #210
April 2000
avatar

Quote:

if(Key[key_up])

al_key_down()? failing that, this is allegro 5, so it should know what the code is doing ;)

Quote:

I think he means that code for triple buffering can be added without problem but it just isn't implemented yet.

ok, thanks. someone make it so, as in my tests triple buffering is so much smoother than paging.

Neil.
MAME Cabinet Blog / AXL LIBRARY (a games framework) / AXL Documentation and Tutorial

wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie

Thomas Fjellstrom
Member #476
June 2000
avatar

In GL, and likely D3D, the update mode is set by a number of variables, the drivers can force it, a program can request it, but may not get it. The hardware might not even have one or more of the modes you want.

In my mind al_flip_display is a black box. It does what you mean, but not nesesarily how you expect. (DWIM!) Like in allegro gl, you could request tripple buffering or page flipping, but you weren't guaranteed to get it. I'm pretty sure allegro 5 has the same sort of "hints" system that allegro gl does.

--
Thomas Fjellstrom - [website] - [email] - [Allegro Wiki] - [Allegro TODO]
"If you can't think of a better solution, don't try to make a better solution." -- weapon_S
"The less evidence we have for what we believe is certain, the more violently we defend beliefs against those who don't agree" -- https://twitter.com/neiltyson/status/592870205409353730

Milan Mimica
Member #3,877
September 2003
avatar

Quote:

Like in allegro gl, you could request tripple buffering or page flipping, but you weren't guaranteed to get it.

You couldn't actually, but I have patches for it. I would like something like that in A5.



Go to: