Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » Allegro 4.2.0 beta

This thread is locked; no one can reply to it. rss feed Print
Allegro 4.2.0 beta
Evert
Member #794
November 2000
avatar

Quote:

I think it would be rather cool to use openGL for 2d allegro stuff IF it does provide a performace boost, (GFX_AUTODETECT_OPENGL?)

What would be rather cool is if Allegro could detect OpenGL by passing GFX_AUTODETECT. That would be my prime motivation for merging it with Allegro. If we decide not to do that (and I personally would prefer to, but it's not up to me) then I really want an enhanced build system that also detects and builds plugins as it finds them. Well, I want that anyway. ;)

Quote:

I would love much much more to see allegro impliment threading first...

Hmm... my point of view on this: any threading API Allegro exposes is going to be very limited in scope and rudimentary. Allegro has a private threading API I think, but it isn't something we want to expose. There is also no need to have Allegro present a poor threading API, since a freely available and portable threading API already exists in the form of pthreads.
My point of view is that since pthreads is a good threading API, Allegro doesn't need one, just as it doesn't really need a 3D API because you can already use a good one (OpenGL) alongside Allegro instead.

Allegro should be more thread-safe than it is now internally (although that situation has actually improved quiet a bit lately), but that is a different issue.

Elias
Member #358
May 2000

Maybe make it GFX_AUTODETECT_OPENGL, so there is a way to tell if something else is preferred (GFX_AUTODETECT tries first non-GL, then GL), or OpenGL is preferred (GFX_AUTODETECT_OPENGL tries first OpenGL, then falls back to something else).

About threading, if we follow a modular principle, then anyone can write a threading addon, and it can be in that user-distribution which includes some addons. Having an easy way for users to get platform independent threading sure would be nice, rather than having them hunt for pthreads themselves. But it need not be in the core Allegro. At least not if we have only like, quite a few, main developers. Although, according to Shawn, there should be at least: 1 dictator, 6 core developers, 6 who are in charge of different areas (probably the same 6).

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

Arthur Kalliokoski
Second in Command
February 2005
avatar

This is a bit off the subject, but I tried 3 times on 3 different days to download 4.2 by clicking on the link in the original post, and kept getting a "Couldn't read file" error. Now it occurs to me that going directly to that address w/o the allegro frame thing in front might be the problem. Downloading it now.:)

They all watch too much MSNBC... they get ideas.

Michael Jensen
Member #2,870
October 2002
avatar

Quote:

it already utilizes threading.

But it does not expose threading for us to use... Eh, I figure yes you can download other libraries to work with allegro for things like threading, networking, opengl, etc, but I usually have a hard time getting them to make, it's always a wild goose chase "Oh by the way for this library to build it needs these other 10 libraries," and for each dependant lib it's almost the same... I rather like how smoothe the allegro build usually is, and it would be neat if I could distribute the source code to linux/whateverOS users and say "Oh... all you need is allegro" anyway, that's just me being lazy I guess...

Speaking of allegro's build, 4.2.0 doesn't build right under DJGPP... it complains about midi.c 1537, I tried redirecting the output to a dump file but it would only dump the successful things to the dump file and the rest went to the screen so that's kind of useless, basically it said that midi_timer_frequency was undeclared, I commented the line out since I don't plan to use any of the midi functions on my graphics only test (this is on a p100 running dos 7.1)

Evert
Member #794
November 2000
avatar

pthreads is fairly self-contained. It doesn't take more than dowloading the procompiled libraries in Windows and installing them along with the headerfiles.
UNIX systems usually have it installed anyway.

Quote:

Speaking of allegro's build, 4.2.0 doesn't build right under DJGPP...

Already fixed in CVS.

Thomas Fjellstrom
Member #476
June 2000
avatar

Quote:

But it does not expose threading for us to use...

Why should it?

--
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

Kitty Cat
Member #2,815
October 2002
avatar

If Windows had done proper POSIX support (pthreads is POSIX-standard), this wouldn't be an issue. But Windows had to break standards (surprised?) and make its own. Even if pthreads weren't standard when Windows' threads were made, they still could've supplied some sort of built-in compatibility.

--
"Do not meddle in the affairs of cats, for they are subtle and will pee on your computer." -- Bruce Graham

Bob
Free Market Evangelist
September 2000
avatar

Quote:

But no, because apparently we already have AllegroGL, and so you can use Allegro to do the graphics with OpenGL, or even combine with Allegro's API.

After working on AllegroGL for the last few years, I have to agree with Shawn. It really wasn't that much of a good idea. Large parts of AGL are overly complex and unwieldy to work around various GPU's limitations or odd behaviors.

Allegro's API also doesn't map all that well to OpenGL.

--
- Bob
[ -- All my signature links are 404 -- ]

Elias
Member #358
May 2000

Quote:

Allegro's API also doesn't map all that well to OpenGL.

Is this also true for the new API? Wasn't that designed a bit with OpenGL in mind? Like, having full support for alpha bitmaps in the Allegro API should make it easy to just have the bitmap it in a texture and then draw a quad for rotated_scaled_tinted_alpha_blit(). Also, the new DISPLAY design will completely get rid of all the ugly screen hacks, and so on. So at least, with the new API, I hope it will be much better than with the current.

And then, of course using Allegro's API won't be as efficient as directly using OpenGL. But I don't think this should matter for what the Allegro API does (blitting and some basic graphics primitives).

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

Chris Katko
Member #1,881
January 2002
avatar

Quote:

Allegro has a private threading API I think, but it isn't something we want to expose.

This confuses me. If it's not good enough for anybody to really use, then... why have two threading systems in the same application? Why not just use pthreads for Allegro?

Quote:

The problem is you won't benefit much from OpenGL acceleration when doing 2D graphics. Moreover, things may be even slower.

I-I want to hurt you... ;)

I'll ignore the second statement because it's obviously false in almost every scenario. The first part irritates me though.

With every single game that I have ever worked on, I have felt cramped by Allegro's graphics. It's performance is horrible when it comes to any kind of blending. Which is an extremely powerful artistic tool.

This is somewhat off-topic, yes, but it leads into my question: "Why not have an OpenGL driver for Allegro?"

Quote:

Allegro's API also doesn't map all that well to OpenGL.

Could you explain how? Unless you're refering to using extra functionality of OpenGL (like the whole draw_rotated_trans_lit_mirrored_superimposed_sprite() thing, but solutions to that were voiced).

For 3-D, use AGL, OGL, D3D, or whatever you fancy. Allegro doesn't need to be a wrapper for a real library, I'm well aware of that. But I'm talking about 2-D acceleration.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs
"Political Correctness is fascism disguised as manners" --George Carlin

ReyBrujo
Moderator
January 2001
avatar

Quote:

This confuses me. If it's not good enough for anybody to really use, then... why have two threading systems in the same application? Why not just use pthreads for Allegro?

If you haven't realized yet, developers are really reluctant to add extra dependencies to the base Allegro system.

--
RB
光子「あたしただ…奪う側に回ろうと思っただけよ」
Mitsuko's last words, Battle Royale

Chris Katko
Member #1,881
January 2002
avatar

Quote:

If you haven't realized yet, developers are really reluctant to add extra dependencies to the base Allegro system.

I know. But duplicate code seems like such a waste.

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs
"Political Correctness is fascism disguised as manners" --George Carlin

Kitty Cat
Member #2,815
October 2002
avatar

I think that means Allegro builds upon the existing threading system (pthreads for Unix/Linux, and whatever Windows uses), for its own internal uses.

--
"Do not meddle in the affairs of cats, for they are subtle and will pee on your computer." -- Bruce Graham

Michael Jensen
Member #2,870
October 2002
avatar

Quote:

(pthreads for Unix/Linux, and whatever Windows uses),

I believe that microsoft just calls it threading, anyway, in DOS it uses software interupts... it would really be desirable, IMHO, to use pthreads because then we can expect the same behavior on multiple platforms also...

Peter Wang
Member #23
April 2000

Quote:

it would really be desirable, IMHO, to use pthreads because then we can expect the same behavior on multiple platforms also...

Cross-platform user programs might benefit from using only pthreads, but Allegro won't. The Windows-specific part of Allegro needs to access Windows-only APIs anyway (by definition) thus we can use Windows threading primitives there. Using an emulation of pthreads for that would be pure overhead.

Elias
Member #358
May 2000

..and the reason to not expose the internal API also for user programs is that user programs can as well use pthreads and then have a proper API, since for them, clean design and an easy to use API is more important than the overhead.

Allegro's internal threading AOU only would be a too-small-to-be-useful subset, only the things that are needed internally (mostly if not only locks so far). But then, there's no real strong reason to not expose this API at some point.. just since pthreads can be used, that is always the better solution.

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

Shawn Hargreaves
The Progenitor
April 2000
avatar

Quote:

Shawn's last message to the AD mailinglist was on 12th of July 2002 and concerned packfile functions and filters.
I don't know if he's still subscribed to the mailinglist and just lurking a lot.

I'm not actively subscribed, but I browse the forums here, and the maillist archives on Sourceforge, every now and then.

As a matter of principle, I hate the idea of obfusticating email addresses, but I get so much spam at my old talula.demon.co.uk address that I just can't be bothered to use it any more. I have a hotmail address that I check pretty regularly, though: concat("shawn", "hargreaves", at, "hotmail.com");

Peter Wang
Member #23
April 2000

Hi Shawn! I hope we're not messing up your baby :-)

Elias
Member #358
May 2000

Wow, Shawn himself. me gasps in awe :)

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

Trezker
Member #1,739
December 2001
avatar

O_o Shawn dropping by... I was taken by surprise ;D

Let's have a look at his profile...
Ranks #248 among active members with 73 posts at an average of 0.04 posts per day.
Latest post:

  1. re: Next DX == God? - 2002-10-08 17:51

Quote:

I have a hotmail address that I check pretty regularly, though

Do you lack gmail, or are you just hiding it from the public?

/me thinks this thread is gonna be offtopic now, talking about teh Shawn!

ReyBrujo
Moderator
January 2001
avatar

Yeah, we can give you a couple of invitations for you to subscribe them to the lists, if anything.

--
RB
光子「あたしただ…奪う側に回ろうと思っただけよ」
Mitsuko's last words, Battle Royale

Shawn Hargreaves
The Progenitor
April 2000
avatar

Quote:

I hope we're not messing up your baby :-)

I don't think you can really call Allegro a baby anymore: it seems pretty much full-grown :-)

All looks good to me, anyway! It's really cool for me to see regular releases, bugfixes, etc, carrying on for so many years...

Quote:

- I have a hotmail address that I check pretty regularly, though

Do you lack gmail, or are you just hiding it from the public?

I just never bothered to set one up: Hotmail works well enough for what I use it for, and it's a pain to keep changing address all the time!

Trezker
Member #1,739
December 2001
avatar

For the Allegro 5 release, I'd like to see a release party somewhere in the world.
Someone should also build the Allegro console that Grudge had plans for.

Gideon Weems
Member #3,925
October 2003

Shawn said:

All looks good to me, anyway! It's really cool for me to see regular releases, bugfixes, etc, carrying on for so many years...

Hi, Shawn! Thanks for Allegro; it's loved by all of us. Any words of wisdom while you're here? (Or have you already left?)

BAF
Member #2,981
December 2002
avatar

hey shawn! I've never seen you before. I love allegro, thanks man.



Go to: