   DX8 and DX9 confusion
  I believe that I have gone about this backwards, but I'm here and confused. I have a game written using DX8 and C++, now that the game logic and everything thing is done I wanted to use Crazy Eddie's GUI System. So I was looking at it but their documentation is weak and I'm not sure what all is going on. But to initialize it to use DX8 it wants a D3D8Device. But I don't use a D3D device. My game is all 2D and I use g_pDisplay->Blt( 0, 0, g_pSurround, ▭); To display everything on the screen.So I'm asking I guess for an explanation between D3D and DX8 and DX9 and the Blt() function. I thought that DX8 was for 2D stuff as the direct draw stuff is all in there, and DX9 is for 3D using Direct3D. I am using DX8 because I want it to run on as many systems as it can. ie) old systems etc. There is so much on GD and the Internet that its hard to find what I'm looking for. Some good old human conversation would be very helpful.Sorry for the long post, but any clarification or examples, etc. would greatly be appreciated!   
Quote:But to initialize it to use DX8 it wants a D3D8Device. But I don't use a D3D device. My game is all 2D and I use g_pDisplay->Blt( 0, 0, g_pSurround, ▭); To display everything on the screen.I haven't dealt until now with DX8 or older versions but my quess if that you  need  a D3D device even if you are using only 2D.   ;  Yes, and DX9 can be used to make 2D also. It's just intergrated with Direct3D.Cheers, ;  The answer isn't really one you are going to like.DirectX has traditionally been composed of different pieces.  eg DirectInput, DirectSound, DirectMusic, DirectDraw, Direct3D, etc.Lately - in the DX8 to DX9 timeframe, DirectDraw has been deprecated.  Although there is still some level of access to the old interfaces, they are no longer used / supported, and this is what you have been programming with.Enter DirectGraphics - the Direct3D and DirectDraw components have evolved into a single component.  2D or 3D programming can be done equally well using this new component.  Unfortunately for your goals, the device you need for that GUI is the device used by DirectGraphics programming.Of course, most veterans will tell you to drop the DirectDraw stuff altogether and move to DirectGraphics.  You can make your game just as compatible with old hardware using DirectGraphics as you can with DirectDraw.  Just stick to the basic features.  There is even software emulation for many of the more advanced features (such as Software Vertex Processing) if the target hardware is lacking.So like I said, you probably don't like the answer, but at least now you have something to work with.  Good luck!   ;  Thanks for the feedback, and so what I'm gathering is I need to rewrite all my graphics calls to use D3D functions in order to use any GUI packages... That's no fun. But if I write it all using DX9 functions then the users wanting to play the game must have at least DX9 installed correct? I suppose that most computers now do have it installed... I'm just trying to keep it open to as many people as I can. It's a casual game and who knows who is going to play it!Is this what most of the "casual game creators" do?   ;  You seem to confuse DX8 with DirectDraw.DX8 is as DX9 capable of doing Direct 3d calls, DirectDraw is still available in all those configurations because of backwards compatibility. 3d in DX8 and DX9 is very similar, there's some interface numbers to be increased and a few function had their parameter list changed.I reckon most casual game developers (like the Popcap framework) used a 2d-on-3d approach: Provide an interface which will utilize a 3d acceleration for 2d display and a fallback to a "normal" 2d engine.The game in question should not care for the difference.   ;  Check out the latest DirectX SDK (December 2005) - Microsoft appear to have shipped a 'web-based' installer for DirectX which weighs in at 400K or something. Package that with your game, run it as part of the setup/install process, and it'll download/install parts of DirectX as necessary to get it up to the latest version.   