What DirectX version would you guys recommend I start with?

Certainly I need direct3d, I'm just wondering what sort of license limitations Microsoft has on the DirectX's, presumably some versions need some sort of special license so I can distribute games written with them? Just what is a 'redistributable' anyway?

Also I will also be limited by the availability of asm includes, I may not have time to convert h->inc.

And I'm wondering wtf IUnknown is. It has something to do with COM?

Just wondering.

Posted on 2002-11-26 07:43:57 by AmkG
Afternoon, AmkG.

A lot of people start with DX3/5/6, as there're quite a few examples on the web for different asssemblers (masm/nasm/etc).

Depending upon your hardware, you may wish to start with DX8 though. It's a lot easier to get something up and running with it.

Posted on 2002-11-27 06:01:46 by Scronty
Hello Scronty, :)
In your experience does it create performance problems to use DirectDraw 7 code and Direct3D 8.1 at the same time, and share surfaces (also as a render target, and/or DD primary/overlay surface) between the two?
Posted on 2002-11-27 06:20:24 by Maverick
Afternoon, Maverick.

I've never mixed DX7 and DX8.1 code :/

I skipped from using DX6 3 years ago (in C++), into DX8 in mid 2001 (in Masm32).

When it comes to performance:
If you're planning on using DDraw for your game/application, you might as well stick to DX5/6.
Only use DX8/8.1 if you're targeting high-end systems. DX8/8.1 is actually a friggin' lot slower than all previous versions of DX. In fact: there's a huge performance drop even between DX8 and 8.1!!

Posted on 2002-11-27 06:44:28 by Scronty
I guess that drop is due to programmable pixel shaders on not-super-modern cards.

Thx for your answer anyway. :)
Posted on 2002-11-27 07:29:31 by Maverick
Dang I wish I had pixel shading, in my GF2MX-400 pixel shading is absent :(

It looks cool from what I see :D
Posted on 2002-11-27 19:04:17 by x86asm
Yeah, it is very good. I have a GeForce3 and I'm very happy with it.
I've only used DX8/8.1 and it seems really fast when done right.
Posted on 2002-11-27 19:47:54 by bitRAKE

Yeah, it is very good. I have a GeForce3 and I'm very happy with it.

I want a GeForce3 wahhhh :tongue:
Posted on 2002-11-27 19:48:49 by x86asm

So if say I was to decide to program in DX8... I would, definitely, need the .inc files (which I've ripped from your site-great work man!), but what else would I need? What OS limitations would a program needing DX8/8.1 have? If a target computer doesn't have DX8, what would I have to do?

Also since you mentioned that DX8 is slower than DX<8, what if I find that DX8/8.1 is just plain too slow, and then decide to go to older versions? How difficult/impossible would this be?
Posted on 2002-11-28 00:51:28 by AmkG
DX itself contains functions for querying the actual hardware of the machine it's running on to determine the capabilities of that hardware. It seamlessly identifies hardware by manufacturer , make and model, and every and all capabilities that the card has available.
In fact, the number one reason why people choose DX is because of it's HAL or Hardware Access Layer, which is basically an interface to "whatever the heck they have in their box".
What this means to us coders is that we can write a function to check for a minimal set of capabilities required by our application...we can then check for "optional" capabilities. If we find that a capability is not supported in hardware, we can allow the user to choose whether to disable this capability in the application, or to emulate it in software. Many functions are available in DX as software functions which tranparently replace hardware functions which are not available.
Your question is a poignant one, I hope I've answered it.
Posted on 2002-11-28 03:50:39 by Homer