Tricks of the Windows G. P. Gurus 2nd ed. deprecated?

Started by
6 comments, last by Maquiavel 19 years, 7 months ago
Hello, I'm reading "Tricks of the Windows G. P. Gurus 2nd ed." and I'm on the chapter 6, "First Contact: DirectDraw". It uses the function "DirectDrawCreateEx" to setup a LPDIRECTDRAW7 var. I searched the DX 9 SDK and it says that using this function is deprecated. Besides that, are there another things that changed in DX9? The things that I'm learning on this book about DX8 are all deprecated nowadays? I have here "Introduction to 3D Game Programming With DirectX 9", should I read it first? Thanks. Alfred
Alfred Reinold Baudisch[Game Development Student] [MAC lover] [Ruby, Ruby on Rails and PHP developer] [Twitter]
Advertisement
it's depreciated because DX 8 and up don't use DirectDraw anymore.
you make your 2D games with 3D functions in those SDKs. but if you are trying to learn actual 2D techniques to learn to make a 2D game, then go ahead and continue with the book.

you'll have to make some changes to one of the headers to get DirectDraw to work though.

(note: can a mod put up a link or sticky, explaining that process. i was always seem to forget.)

Beginner in Game Development?  Read here. And read here.

 

I have the same book and am working through it. The code he gives works well, more or less. I did not have to make any changes to any headers.

Of course, I wrote all of the code from scratch, rather than using his. Just using the book as a reference.

DirectDraw may be old but it works and is a gooder place to start learning from IMHO. But what do I know...
It's true that DX7 interfaces and functions might be deprecated in DX9, but don't let that prevent you from using them. All versions of DirectX *must* support previous versions of DirectX. When I was learning DirectX, I had DirectX 5 and later 7 installed, but I was using interfaces from DirectX 3.

Microsoft doesn't want new versions of DirectX to break applications that use previous versions of DirectX, so they guarantee backwards compatibility.

They would of course prefer that you use the latest and greatest, so they mark the old stuff as deprecated, but don't let that deter you from using your DirectX 7 interfaces. From what I hear, the way of doing 2D changed starting with DirectX 8 in that you have to monkey around with 3D stuff as well. Don't worry about that and keep developing the DirectX 7 way. Your programs will continue to work just fine.
I've read/heard that although DirectDraw still works with DX8 and DX9, we're better off not using it because DirectDraw will not benefit from todays 3D accelerated cards. Is this true?
Quote:Original post by Fatbob
I've read/heard that although DirectDraw still works with DX8 and DX9, we're better off not using it because DirectDraw will not benefit from todays 3D accelerated cards. Is this true?


This statement is false. These cards still provide hardware accelleration for DirectDraw operations such as blitting and scaling, and of couse the most important benefit to DirectDraw: extremely fast video memory.

You are only better off using Direct3D over DirectDraw in 2D applications if you require features that aren't supported in DirectDraw such as alpha blending. I also found DirectDraw far more easy to learn that Direct3D, so you usually can start making 2D games a lot sooner using DirectDraw.
Quote:Original post by Etherstar
This statement is false. These cards still provide hardware accelleration for DirectDraw operations such as blitting and scaling, and of couse the most important benefit to DirectDraw: extremely fast video memory.


Thanks for clearing that up for me.

Quote:Original post by EtherstarI also found DirectDraw far more easy to learn that Direct3D, so you usually can start making 2D games a lot sooner using DirectDraw.


I heard others saying exactly the same thing.
Thanks for all the replies. I'm more confident now.
Alfred Reinold Baudisch[Game Development Student] [MAC lover] [Ruby, Ruby on Rails and PHP developer] [Twitter]

This topic is closed to new replies.

Advertisement