Why are so many people using DirectDraw?

Started by
26 comments, last by CrazedGenius 22 years, 10 months ago
This is not meant to be a flame or anything - I''m just curious... I see alot of people using surfaces, locking, etc. and while I can understand the "using what I know" angle, I''m not sure why people are using this when current hardware is very much tuned for 3D and you can use the 3D/texture DirectX stuff for 2D work very easily. If it would help, I could write a gamedev article on using DX8 for 2D...
Author, "Real Time Rendering Tricks and Techniques in DirectX", "Focus on Curves and Surfaces", A third book on advanced lighting and materials
Advertisement
Well, not everybody has a 3d card (!). And 2d programs generally don''t require the same kind of speed as 3d programs (think card games versus first person shooters), so there''s no real need for hardware accelerated everything.


~~~~~~~~~~
Martee
http://www.csc.uvic.ca/~mdill
ReactOS - an Open-source operating system compatible with Windows NT apps and drivers
Here''s a couple of reasons I can think of:

1) Everybody''s used to using DirectDraw for 2d, no use in complicating things

2) Not everyone owns the latest 3d cards, and 2d is still supported


Uh, that''s all I can think of right now. Personally, I still use DirectDraw for 2d, but use 3d for certain effects (alpha blending, etc.)



"We are the music makers, and we are the dreamers of the dreams."
- Willy Wonka
Ahh...

fair replies. I guess my question was based on an assumption that people were writing games with a long enough development cycle that you could count on there being 3D hardware (pretty much 100% of machines shipped today are 3D accelerated).

As well as the hardware issue, it seems like a bad time to be learning the DX7 stuff that is gone from the API. Just a thought.

About complicating things - IMHO, the D3DX API makes dealing with bitmaps, etc. much easier than DX7.

A final thought - using 3D DX8 calls for 2D would involve VERY little geometry, and therefore your chief constraint should fallback to being fillrate. Therefore, any card that works well for straight 2D (good fillrate) should work well for 2D-done-using-3D. It seems like you would have the advantages of new APIs, support for new hardware, and more than adequate legacy support with no real disadvantages. I'm saying this without any hard data to back it up. Am I missing something?

Edited by - CrazedGenius on June 12, 2001 11:54:11 PM
Author, "Real Time Rendering Tricks and Techniques in DirectX", "Focus on Curves and Surfaces", A third book on advanced lighting and materials
My excuse is... well... I don''t really have an excuse.
One reason is that Microsoft Doesn''t make using DirectX easy for BCB (Borland C++ Builder) and DirectDraw is easier to get running correctly than Direct3D.
The second reason is that I never really thought of using Direct3D for a 2D application.
The third reason is, my computers 3D accelerator sucks (it is non-existant) though I can run most of todays games it is more understandable for me to acknowledge lower system requirements than high end card owners (who tend to assume the, "oh, I thought every one had a card as good as mine" attitude towards developing). Many people go years without upgrading and when they do updrade video is one of the last things to get done.
The fourth reason, I am already well versed in 3D programing, but I am not good at 2D, so I got up one morning and decided to learn.
Finally, it seams like overkill. Direct3D frees up more resources and takes better computers to run. So why make something using more demanding technology when you can make it look exactly the same with less demanding technology.

Ok, that is my input. I might look into Direct3D but I usualy use 3rd party api''s (Genesis3d and Morfit) for 3D and Direct3D is a big step into a much more complicated api.
Andrew Curioso (honds)
Keep in mind that while the majority of system will have 3d accelerators in them, the vast majority of these will be built into them (read, low end 3d cards by todays standards - yes lower than a TNT2).

While using Direct3D is good for doing alpha blending for 2d graphics, many of these systems will actually do alpha blending faster in software since there is less overhead. Direct3D still has to ''texture'' the resulting polygon using the current render state where a good assembly level blend rouinte does not have to map pixels to a polygon.

Direct3D also runs into much stricter coding when dealing with texture state changes and sizes.

In the long run, I recommend using DirectX7 if you are writing a game that utilizes a lot of 2d graphics and text. Ideally you would code your engine to use 3d rendering if available where needed.
i got fed up with directx after is complexity to draw a simple bitmap which i could never get to work so i switched to opengl and boy whata difference. hell of a lot easier, for me that is. i only gota tnt 1
I''d love a tutorial article on using DirectX8 for 2d. The reason I haven''t switched is I remember how much a pain in the ass it was to get a system in place for blting bmp''s to the screen. The sdk help files can be quite cryptic at times. So knock yourself out, at least one person will benefit from your article.


Later,
Eck

EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG

I would like to see one. just my two cents
I just started this process of migrating. I am tired of the limits of DirectDraw and want the full power of Direct3D.

Been looking around for samples and... ouch! Not a lot to pick from. Tons of DD stuff, but D3D is fairly thin right now.

So please.. Write away! I''ll hang on your every word. I can even proof-read it for you if you want.
Dustin

This topic is closed to new replies.

Advertisement