Archived

This topic is now archived and is closed to further replies.

Gazza

No BLT with DX8?

Recommended Posts

OK , a little birdy told me (or was it a little furby ) that DX8 does not have any Blt Functions. Is this true? Is this madness? Does this mean you have to use DX7 DirectDraw interfaces if you need hardware blitting in DX8 Im confused

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quoted from dx sdk doc.. hope this clear things up a bit..

Blitting [Language: C++]
[C++]
The term blit is shorthand for "bit block transfer," which is the process of transferring blocks of data from one place in memory to another. The blitting DDI continues to be used in Microsoft® DirectX® 8.0 as the primary mechanism for moving large rectangles of pixels on a per-frame basis, the mechanism behind the copy-oriented IDirect3DDevice8:resent method. The transportation of artwork in the blit operation is performed by the IDirect3DDevice8::UpdateTexture method.
[Visual Basic]
The term blit is shorthand for "bit block transfer," which is the process of transferring blocks of data from one place in memory to another. Graphics programmers use blitting to transfer graphics from one place in memory to another. The blitting DDI continues to be used in DirectX 8.0 as the primary mechanism for moving large rectangles of pixels on a per-frame basis, the mechanism behind the copy-oriented Direct3DDevice8.Present method. The transportation of artwork in the blit operation is performed by the Direct3DDevice8.UpdateTexture method.

Share this post


Link to post
Share on other sites
Anonymous Poster:

By posting that information directly from the DirectX 8.0 SDK (or atleast thats where it looks like its from), you have violated the Non-Disclosure-Agreement for DirectX 8.0. That''s not something to joke around about, MS takes violations very seriously. Very smart to post anonymoustly.

I suggest removing the message leaking information ASAP unless you want lawyers at your door. ;-)

-Dan Smith
dans@3dgamedev.com

Share this post


Link to post
Share on other sites
Wait a sec. I thought they were MERGING Direct3D and DirectDraw. Instead they are taking DirectDraw out completely??

And then they plan on putting it back in with DirectX9? Damn and for a while I was actually looking FORWARD to DX8... now they are taking a huge step backward??


- Houdini

Share this post


Link to post
Share on other sites
Indeed, you can no longer create surfaces or use any sort of blt functionality. In fact to improve performance the functions to create directx devices have been removed, you are now expected to create a pointer and randomly jump it around in memory until you find the necessary directx objects.....

Then again, maybe I have no idea what I''m talking about...and since it''s now quite april I guess I should apologise for my blatant misinformation... oh and have a nice day

Just because the church was wrong doesn't mean Galileo wasn't a heritic.
It just means he was a heritic who was right.

Share this post


Link to post
Share on other sites
The mentioned Present method replaces having a global which says whether you are in windowed or fullscreen and blit or flip respectively, if you are in windowed mode it will blit the backbuffer to the primary buffer, and if in fullscreen mode it will blt the backbuffer to the primary buffer. Of course you are denied direct access to these buffers via lock, all access must be via DrawPrimitives (like OpenGL, but without the glDrawPixel function or whatever it is called). DX9 will have Blt and BltFast and Lock again. This is because DirectDraw is removed from DX8.

By the way, I am not violating any NDAs when I tell you this, since:
a) I am not on the DX8 beta program, so I have not signed any NDAs.
b) All this information was either worked out or obtained from the Meltdown presentations on the MS website.



Please state the nature of the debugging emergency.


sharewaregames.20m.com

Share this post


Link to post
Share on other sites
quote:
Original post by Houdini

Wait a sec. I thought they were MERGING Direct3D and DirectDraw. Instead they are taking DirectDraw out completely??

- Houdini


They are merging it in a sense, you will not have to use any part of DirectDraw to use D3D. Initialisation of the ID3D8 is a single function call, and after device initialisation, you do not need any more initialisation. You also need not create primary and secondary surfaces, they are created when the IDirect3DDevice8 is created. And as mentioned before you do not need to call Flip or Blt, you just use Present.



Please state the nature of the debugging emergency.


sharewaregames.20m.com

Share this post


Link to post
Share on other sites

Won''t you be able to access previous versions through the DX8 COM interface, ie; IDirectDraw2? If DX8 didn''t support, at least, the complete current DirectDraw interface it would break a ton of applications out there. I doubt Microsoft would do that.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
All the old DX intefaces will (almost certainly) still be supported for backwards compatibility. But the new DX8 objects don''t necessarily have to expose the old interfaces.

(I don''t really know anything about DX8, but I know that Microsoft won''t make a DX that isn''t backwards compatible because noone would install it (unless it could co-exist with older versions of DX of course))

A question:

Does anyone know when MS is planning to release DX8??

Share this post


Link to post
Share on other sites
being able to use DX7 interfaces is a given, it HAS to be backwards compatible.
so existing apps will still build and run.
however, you might not be able to mix DX7 and DX8 stuff (ie, query for DX7 then use Blt the continue with DX8).
i think a few places in the SDK say stuff about mixing interfaces, maybe when "texture" was replaced by "surface" in the last update.



crazy166
some people think i'm crazy, some people know i am

Share this post


Link to post
Share on other sites
Ok, so answer me this, I know it was mentioned before, but I am getting confused. In DX8, there are no ''new'' improvements to DirectDraw (2D), therefore you need to use the DX7 Interfaces? (ie no LPDIRECTDRAWSURFACE8?).

Am I right to assume that Direct X 8 does have 2D functionality, but nothing beyond the functionality of Direct X 7?

If the above is true, then DX8 is mainly a D3D update?

Kevin =)

Share this post


Link to post
Share on other sites
If you want to use DirectDraw, you must stick with DX7, DX8 does NOT have DD and you can''t mix DX7 & DX8 calls...I don''t wanna violate my NDA , but I hope that helps...
~S''Greth

Share this post


Link to post
Share on other sites
Hmmm, does OpenGL offer 2D features? If so I''m going to give some serious thought to switching to that. Actually taking out 2D has to be one of the most f''d up ideas I''ve ever heard of.

I mean, I''m not going to continue using DX7 when there''s all these great little DX8 3D features I can''t use, and I''m not going to sit around for the next year or two waiting for DX9 to come out.

Heck, if OpenGL is easier to use, more portable, and has 2D features...


- Houdini

Share this post


Link to post
Share on other sites
I''m sure that you can still perform 2D features (via 3D accelerated sprites) but don''t quote me, I''ve been focusing more on my OGL encapsulation than my DX one...
~S''Greth

Share this post


Link to post
Share on other sites
I got more and more peeved as I read the above posts.
DirectX absolutely sucks - it is the biggest load of binary crud that was ever invented.
How big is it going to get - how far is it going to go - how long do we have to put up with huge horrible fullcaps types.
LPDIRECTDRAWSURFACE8 What?
GL is the only way to go as far as I''m concerned - or hell,
Mode 13h Yesss!

Chris

Share this post


Link to post
Share on other sites
It amazes me how some people take things way too far before they even know what the hell they are talking about.

Even if microsoft took the directdraw functionality out of dx8 then that would mean DX8 would operate more like OpenGL. Meaning even though you have a 3d enviornment you would just have to ignore the z value. This would allow you to use D3d exactly like OpenGL in Orthogonal Mode.

I honestly don''t see what all the fuss is about. Just because they remove the ddraw interface from the 8 API doesn''t mean that the old directdraw interfaces will no longer work. If that were the case, once you installed directx 8 none of the games on your system that used directdraw would work. Microsoft won''t let that happen because even their games use Direct Draw in some way shape and form.

You guys take things way to far. For god''s sake think about things for a moment before doing all this API Mud Slinging. We shouldn''t honestly even be talking about DX8 as the API isn''t even out yet. It''s like talking about what the 2024 dodge viper will have in/on it.

Share this post


Link to post
Share on other sites
You will still be able to use all your old interfaces, this is part of the COM specification. D3DX''s sprite interface is much improved, and so you can use 3D hardware acceleration to draw 2D. There is no LPDIRECTDRAWSURFACE8 at all, there is a new texture interface for dealing with textures in a 3D context.

And 2D functionality will return in DX9 when the D3D-DD combining will happen. However, DX9 will only work on ME and 2000 and above OSes, it will not work on the 9x series (or the 3.1x series either for all it''s worth). So to use 2D functionality under Windows 95/98, you will have to use DirectDrawCreate/DirectDrawCreateEx. The only reason 8 is as it is is because of the 9x-NT combination which will come later (by the way, Windows 95 was supposed to be the combination of Windows NT and Windows 3.1x, so don''t complain about it, Microsoft has been planning it since 1993 or something).

To sum up, there will be no DirectDraw in DX8, just D3D and D3DX. Retained Mode will also no longer be upgraded. Ever.



Please state the nature of the debugging emergency.


sharewaregames.20m.com

Share this post


Link to post
Share on other sites