|
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... -- |
Todd Cope
Member #998
November 2000
|
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
|
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. |
SiegeLord
Member #7,827
October 2006
|
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 |
Milan Mimica
Member #3,877
September 2003
|
GameCreator: What you read is probably a 4.3.10 release info.
-- |
GameCreator
Member #2,541
July 2002
|
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
|
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. -- |
Trent Gamblin
Member #261
April 2000
|
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
|
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 |
Trent Gamblin
Member #261
April 2000
|
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
|
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 ------------- |
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). -- |
Goalie Ca
Member #2,579
July 2002
|
What types of primitives? triangles, circles, ellipsoids, and maybe splines? ------------- |
SiegeLord
Member #7,827
October 2006
|
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 |
Neil Walker
Member #210
April 2000
|
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. 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 -- |
Neil Walker
Member #210
April 2000
|
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. wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie |
Milan Mimica
Member #3,877
September 2003
|
al_flip_display() may do just anything
-- |
Neil Walker
Member #210
April 2000
|
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. wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie |
GameCreator
Member #2,541
July 2002
|
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
|
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()) 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. ------------- |
Neil Walker
Member #210
April 2000
|
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. wii:0356-1384-6687-2022, kart:3308-4806-6002. XBOX:chucklepie |
Thomas Fjellstrom
Member #476
June 2000
|
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. -- |
Milan Mimica
Member #3,877
September 2003
|
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.
-- |
|
|