Skip navigation.

exploreopera

| Help

Sign up | Help

Software Development

Correcting The Future

Missing the Memo

HAPPY NEW YEAR!

So anyways, this topic is about graphics. I dunno. Sometimes, I completely miss the obvious. My brother recently got a new LCD screen and his built-in hardware would not support the 1680x1050 resolution needed. Even if it did, handling that many pixels in software would be insane. He's got an older machine, but as luck would have it, everything would turn out rather good. His machine can only support AGP 4X. The speed isn't what you have to watch out for. It's the voltage. AGP v1.0 is 1X and 2X at 3.3V. AGP v2.0 is 1X, 2X and 4X at 1.5V. AGP 3.0 is 1X, 2X, 4X and 8X at 0.8V. The voltage is what you need to look out for. 3.3V and 1.5V cards are keyed differently, so no problems there. Look at the notch and see if it fits in your board. The problem is newer cards. 4X & 8X cards are both notched the same way. So we found a card at this local store that said it supported AGP 2.0 and 3.0. Right on. AGP 2.0 supports 1.5V that my brother needs.

The card in question is an entry level card. It's an ATI X1050. Now, if this is an entry level card, then we're not in Kansas anymore. This card has like 95 OpenGL extensions and tons of other features. When you play any video (movies) at all, the CPU usage is ZERO! And the entire screen is hardware accelerated because there's just no way the old machine could handle all those pixels in order to have a nice user experience. For those who want to know more about the card, it's based on the X300-X600 models. It's an RV370 chipset. The only model to use this chipset. So it's faster than any of the X300-X600 line. But as far as gaming goes, you can play all the games, but don't expect anything fancy. I don't recommend this card at all unless you're looking for a 4X card to fit in your old box. In that case, it's probably one of the best cards available (that I could find).

This got me thinking. If this is an entry level card and it can do this much hardware acceleration, then it'd be nice if I did my GUI using the hardware as well. The only problem I have is that I can't get the hardware to do 2D alpha blending. It's actually impossible. The hardware can do it, but DirectDraw doesn't support it. This is where I missed the memo. DirectDraw died with version 7. I knew it died, but I didn't realise the implications of this.

I hadn't done 3D in a while, so I checked out a few tutorials as well as some old code of mine. I have several sets of basecode for OpenGL and DirectX. I looked through them and found that alpha blending is extremely easy. But this is for entry level video cards... of TODAY. But what about machines that are used to go on the web or are purely used for 2D? What of them? If they didn't support alpha channels, then I'd need to do it with software. So I decided to check it out.

A friend had an old ATI Rage 128 (Xpert 2000) 32MB. These are literally $10 on ebay. They're about the same power as the old TNT cards. These were made in 1998. So I tried it out. It handles video acceleration, alpha blending, multitexturing, antialiasing and everything else I'd need for 2D graphics. Only thing I'd be using a 3D API. And it actually has very good speed for 2D. No one is gonna have worse than this. No way! And if they do, then whatever.

Luckily, I can still use my 2D library for things like building custom textures and loading graphics. So all the code I have is still useful. It's just that I really, really missed the boat on this one. But all things have meaning. I can now proceed to build the GUI without worrying about how stuff gets on the screen. And since the hardware is handling it, I have a few tricks up my sleeve. This is going to be fun.

The backend is basically done. Just have a few things to fix up. The back end should be done whenever I can put in two full day's worth. So I'll be starting the GUI very soon now. I'm thinking of going with OpenGL because Linux supports it. But if I have to do DirectX, no problem. I've done that before too.

The New Year brings in unexpected optimism. Though this one is pretty bad on my part. I'm not big on resolutions, but I'll try and stick more to finishing Project V and stay away from things that would distract from that goal. Now that the backend will be done for single cores, it'll be more fun to try things out. There's nothing I like programming more than graphics. And don't worry, multi-core and distributed versions won't be far behind.

Ok, that's it for this article, but I feel like rambling. So stop now if you're only interested in the article proper.

Should I talk about predictions? Or what happened in 2007? Maybe this year, the programming world will unite and live happily ever after. HAHA! I get a kick out of that one. Could you imagine? C++, Java, Ruby, Haskell and Erlang programmers all getting along? Would it be possible to predict such a thing? Not even that it'd come true, but that there'd be a possibility, however slight, that this would happen.

Heck, the Rails community can't even get along. This is some funny shit here. Kinda old (few weeks), but still. Read it. It's pure fucking GOLD! But WTF is a DDR pad? And who pisses in Cheerios? That's not very nice. (/remove Internet-sarcasm-filter)

Rails is a Ghetto

Actually, I think I'll end it here. I can't top that and I couldn't find anything else interesting to talk about just now.

Great Hackers 10x as ProductiveSimple Example of the Difference Between Imperative, Functional and Data Flow.

Comments

avatar
A DDR pad is for Dance Dance Revolution.

See => http://www.ddruniverse.com/

By pixelpusher, # 2. January 2008, 08:09:14

avatar
Yeah, I was being sarcastic. That post still makes me laugh.

By Vorlath, # 2. January 2008, 20:56:07

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

Please type this security code : 0275fd

Smilies

October 2008
SMTWTFS
September 2008November 2008
1234
567891011
12131415161718
19202122232425
262728293031