Allegro.cc - Online Community

Allegro.cc Forums » Allegro Development » Graphics API proposal (take 5)

This thread is locked; no one can reply to it. rss feed Print
 1   2   3   4 
Graphics API proposal (take 5)
Oz
Member #559
July 2000

he biggest thing that comes to mind when i hear the graphics api being updated is.... is the directx code also gonna be updated? I have heard one simple minded person complain that by doing so would kill NT support but who really gives a damn. NT aint a gaming platform.... I would **LOVE** for allegro to use atleast directx 7 .. whats it using now 3.0 hehe? Many would agree directx really didnt start coming around till about 6.0... 8.1[or whatever the hell is out now] would ofcourse be choice... This is by far the biggest thing im looking for in a allegro update. I have really stoped using allegro all together because of this. Whats al_blit() even gonna look like? dont u think an al_ex_blit() is needed?

GNE is rather buggy, and ive heard bad things about libnet but i havent used it myself. If allegro sported a easy to use networking library [add-on or not] it would be a big boost for allegro... No matter where you stand on it if your choosing between say sdl or allegro from a link from some website you gotta agree you would pick the one that "Even has tcp/ip support!" over one without....

Bloat is a terrible thing tho.. glad to see them damned fli playing routines gone. The GUI looks awful and im sure everyone here hates it as much as i do, update it or cut it. Ofcourse grabber would need it though...

Hey im all for the new update method, id go one farther and have a DetectBestUpdateMethod() function... i dont wanna make the user choose,and i dont wanna write my own code to do it. It should therefore be added:)

Dreamcast port?GBA port? I'm dumb!... u cant even buy a dreamcast anymore.. maybe at a flea market... and im not sure how limiting the GBA is even tho it is beastie for a handheld:) Consoles/Handhelds come and go to quickly why on earth even add it to allegro? It seems silly.....

Ohh and why im completely off topic i think sound samples when loaded u should be able to adjust there volume, rather then just playing it at the volume needed, after awhile and u have so many that gets confusing...

Bob
Free Market Evangelist
September 2000
avatar

Quote:

I have heard one simple minded person complain that by doing so would kill NT support but who really gives a arg. NT aint a gaming platform

Allegro could support both DirectX3 and 7 at the same time, and autodetect which one is installed. In fact, you could write the DX7 driver right now.

However, no one is willing to write that DX7 driver. So right now, it's more of a "if you want it, you'll need to code it".

BTW, what feature of DX6/7/8 would benefit Allegro?
(I'm just asking, I really don't know all that much about DX).

Quote:

farther and have a DetectBestUpdateMethod() function

Then select AL_GFX_UPDATE_AUTO :)

Quote:

Ohh and why im completely off topic i think sound samples when loaded u should be able to adjust there volume

Just loop through the sample data and multiply/shift them by some value...

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

Peter Hull
Member #1,136
March 2001

Quote:

Blit actually means BLock Transfer, with an 'i' in the middle

I am dumb as toast. Curses.

pete

Oz
Member #559
July 2000

Directx 8 would be huge for 3d programmers.. Theres really to much to even go into, its so much nicer to work with then other versions...

and even sporting 7 should be noticeable speed gain.... ofcourse older video cards wont get much out of it...

MindCode
Member #2,031
March 2002
avatar

I have to agree with Oz. Dx8 has support for programming nVidia vertex shaders, it's easier to code, and faster. Since Allegro is using Dx already, will it be possible to use Dx functions alongside Allegro. Or will it interfere with the library?

______________________________________
Frag The Planet

spellcaster
Member #1,493
September 2001
avatar

What are vertex shaders? How do I use them in 2d programming?

(Point here is: If they're not used in 2d, the job is up to OpenGL)

--
There are no stupid questions, but there are a lot of inquisitive idiots.

Thomas Fjellstrom
Member #476
June 2000
avatar

um... How about BLock bIt Transfer. ;)

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

Korval
Member #1,538
September 2001
avatar

Quote:

Directx 8 would be huge for 3d programmers.. Theres really to much to even go into, its so much nicer to work with then other versions...

Although I'm not trying to start a D3D vs OpenGL war, we already have OpenGL support (via AllegroGL). It is very likely that Allegro 5.0 will have GL support built in. Why bother with D3D 8 when OpenGL (via extensions) supports even more features than D3D exposes?

Quote:

What are vertex shaders? How do I use them in 2d programming?

Vertex programs wouldn't be very useful in 2D, unless you using them to set up data transfer for Pixel shaders (which can be very useful in 2D. Imagine bump-mapped sprites, for one).

Remember, blits in a 3D renderer are done via texture-mapped quads. Therefore, you can use vertex programs to play around with vertex data on textured quads. Typically, for 2D, you're not going to need vertex programs.

SpongeBob SquarePants
Member #2,126
March 2002

Speed is one reason, OGL is not even reconized by many video card manufacturers [granted almost all do nowadays], and is just given basic support by others. DX on the other hand is the industry standard, every video card is designed to run the best it possible can, in DX.

Thomas Fjellstrom
Member #476
June 2000
avatar

I really couldn't give a rats A$$ about DX support. ;) I rarely (if ever) play games in windows, and the DX games I do play are translated to OGL calls by WINE. My only concern is OpenGL. (wich is faster. some site did a benchmark under Windows and under Linux/Wine, the game running under Linux/Wine ran faster. Chew on that)

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

SpongeBob SquarePants
Member #2,126
March 2002

I would really like to see that website, i tried playing a few games i commonly play on my windows machine on wine about a month back. I found it to be much slower, almost to the point where it was unplayable. My guess would be his machine was designed to run in linux a little more so then my old windows machine converted into a mp3 player(mostly)/linux box.

Even so i would think you would care about it since im sure 99% of anyone who plays your game will be playing it via true DX.... Assuming you took the time to compile a DX version that is :).

ank 2
Member #2,120
March 2002

Why not add DX support to allegro via something similar to AllegroGL while haveing the OpenGL support built in. DX does have its benefits but its not multiplatform like GL. In most cases DX support through WINE is going to result in a very slow game (and at the moment unstable too).

Bob
Free Market Evangelist
September 2000
avatar

ank 2: Yes, that is possible. Although that requires people who are both familiar with DX and motivated enought to write the add-on.

SpongeBob SquarePants: Unfortunately, you can only compare a game running on an emulator against the same one running outside the enumator to judge the speed of emulation, and not the speed of the video drivers ::)

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

Thomas Fjellstrom
Member #476
June 2000
avatar

Hey bob: WINE == Wine Is Not an Emulator ;)
The version of wine used for the test was called WINEX I think. Some company has been doing some serious work on the DX code.

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

SpongeBob SquarePants
Member #2,126
March 2002

I hate to say it seeing how you are a fellow bob and all,but Thomas is right:). Ohh kudos on the new version **GREAT** job guys.

PS: Bob was wrong ha ha ha ha, Looks out side, Ahh a blue moon!! :)

Bob
Free Market Evangelist
September 2000
avatar

Fine. It's an "abstraction layer translator". The thing is, depending on where you place that abstraction layer, you'll get yourself an emulator :)

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

Thomas Fjellstrom
Member #476
June 2000
avatar

;) WINE is just an API. Its basically just a Win32API wrapper. I would call it a translator.

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

SpongeBob SquarePants
Member #2,126
March 2002

Bump just because I WANNA

Thomas Harte
Member #33
April 2000
avatar

Quote:

im not sure how limiting the GBA is even tho it is beastie for a handheld

A better designed 32bit processor than anything intel have come up with and the option of a normal frame buffer display rather than the very backward tile/sprite display that Nintendo hardware designers and Nintendo hardware designers alone love. However, there is no hardware acceleration in the frame buffered mode, unlike your PC (or even an Atari Lynx), so doing the sort of thing most people will assume is 'right' on a GBA - side scrolling platformers - would be suboptimal via the Allegro library.

Quote:

WINE is just an API. Its basically just a Win32API wrapper. I would call it a translator.

Well, it also translates the executable format, and probably has to do some funky stuff with respect to memory allocation.

By the way, has anyone tried combining WINE and that intel emulation BOCHS thing?

SpongeBob SquarePants
Member #2,126
March 2002

Thats it busters! Us Bob's ain't taking it no more,ya hear?!?! We is rising up against our oppressors, the Thomas's!! AKA TOMS! They must be dealt with in a ordiarly fasion! THE BOBS!!! THE TIME IS NOW!! WE MUST STRIKE O SAYETH THE LORD!

the_y_man
Member #1,770
December 2001
avatar

very interesting.....

Neil Roy
Member #2,229
April 2002
avatar

The changes sound great. I think the al_draw arguement follows the same line of reasoning that Microsoft has follow, if they don't understand it, rather than force them to learn anything, make it easy for them so they don't strain thier brain. ;) This is programming, I am curious, how long did it take you people to understand what a blit was? 1 maybe 2 seconds? ;) Besides, it doesn't "DRAW" it copies a block of data, to me drawing is... well... drawing... like drawing a line, a circle etc... it isn't copying blocks of data. Also, this may be just a personal thing but to me, it just doesn't seem natural to have dest then source, my brain cringes when it isn't source first, I hate the way draw_sprite has dest then source, it's just not the way I think and I would love to see draw_sprite changed, maybe to blit_sprite(source, dest.....) ;) and get rid of draw from functions that clearly move blocks of data and leave drawing to drawing functions.

I have actually had a friend turned off of using Allegro because of things like the source and destination being inconsistant.

Anyhow, I think we should refrain from coddling new programmers and stick to what makes sense and assume they have basic programming skill or are willing to LEARN rather than taking the Microsoft approach <shudder>

(now that I think of it, why keep draw_sprite() at all? Personally I use blit() most of the time and it is very rare that I use sprite. Maybe some sprite functions that rotate etc... could be changed to rotate_bitmap or something. Unless you wanted to keep the draw_sprite strictly for RLE sprites, but couldn't blit handle that? just a thought)

Have a good one.

---
“I love you too.” - last words of Wanda Roy

Korval
Member #1,538
September 2001
avatar

Quote:

it just doesn't seem natural to have dest then source

Tell that to the C/C++ language. After all, this:int Foo = Stuff doesn't set the value of Foo into Stuff; it sets the value of Stuff into Foo.

Thomas Fjellstrom
Member #476
June 2000
avatar

hmmm... I know at least one Assembly language uses Dest->Src ;) Its called Casm ;)

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

vpenquerch
Member #233
April 2000

> Support for bitmaps of alternate color spaces (hsv, yuv).
Oh, lovely ...

> al_set_int("/gfx/color_depth", 16);
Oh well, I won't reiterate my dislike of this ;)
That's gross. If you want to remove as many API entries as possible, why not use enums instead
of those strings ? Errors are caught at compile time, it's faster, and it's not ugly.

> al_map_rgb(sprite, &col, 255, 128, 0)
Is it still possible to create colors in a given format, without having a BITMAP in this format first ? If not, I want one ;)

 1   2   3   4 


Go to: