BCB Components rotating around DirectX

Welcome to 
BCB-Tools.com Latest News

Development Tools Demo Applications Step-By-Step 
Tutorials Component 
Reference

Register our 
Tools Available 
Downloads

Frequently Asked Questions Links to other sites Information 
about the BCB-Tools.com website


    ARTICLE - WHAT IS DIRECT X
    Author: Mungler from Digital Silence
    Resumed in some words, here you can clarify some of this theme.



    With the recent release of version 9.0c, DirectX once again takes its place in the spotlight. I thought I would use this occasion to review what makes DirectX tick.

    It also occurred to me the other day that DirectX, and it's various versions, has a great impact on many aspects of Windows computing...affecting much more than just our gaming experience and yet, has managed to stay quite low on most user's radar.

    What is DirectX?
    DirectX is a set of multimedia Application Programming Interfaces (API's) written by Microsoft. It is a collection of Dynamic Link Libraries (DLLs) that contain functions useful to a wide range of multimedia programmers, but are all almost entirely platform independent. This allows programmers access to fast graphics, sound, and input functions while not needing their apps to test for the capabilities of the computer on which their program is running. DirectX will evaluate these capabilities and if they are not present, DirectX may attempt (in many cases) to emulate the functions in software instead of hardware.

    Back in the height of DOS, people like game developers had direct access to the hardware for which they were developing. With complete access to interrupts, sound cards, input devices, and the VGA controller, the developers could usually make the hardware do anything they could dream up. The release of Windows 3.1 did not tempt developers because of the massive overhead that came along with it for game development. However, DOS had its own problems.

    Hardware device support in DOS became a complicated nightmare. As the desktop computer became more and more popular with the average household, more hardware competition developed, giving rise to hundreds of different posible PC configurations. With the skyrocketing number of configurations to code for, more development time was being spent programming support for the hardware, which left less and less time in the project plans for programming the games themselves!! Fortunately, that was about to change.

    [Ed. Note - How many gamers remember how difficult it was to get things like soundcards working in DOS games? Fooling around with IRQ's and DMA channels was an exercise in frustration. Or how about memory allocation? Working with EMM/XMS could be equally frustrating.]

    With the usual promises of something new, different and better, Microsoft unleashed Windows 95 into the world. Windows 95 had many new things to offer over and above its DOS-based predecessor. “Plug and Play” was introduced in an attempt to make it simple for the average PC user to install the latest hardware. The resource-handling system was completely revamped to make device management easier and device independence more of an actual reality. Unfortunately, Windows 95 lacked the necessary performance enhancements to sway developers interest in the Windows 95 Platform. Consequently, many games ran in a DOS mode or required a reboot of the PC so that they could start up their own DOS-like system. DirectX set out to change all this.

    The seemingly simple goal of making Microsoft Windows a desirable platform for multimedia development turned out to be a much greater undertaking than MS probably first thought. It was quickly determined that in order to provide the performance needed, DirectX would need to operate through fast, low-level libraries that allowed the developer to maintain creative freedom over their code.

    The next item on the DirectX developers list was to shift the burden of hardware support from the multimedia developer to the hardware manufacturers. This makes much more sense, as hardware manufacturers are more qualified to write the drivers for their products than any application developer. This approach also helped to unify the standard for technology drivers, keeping the essential compatibility aspects in the forefront for all kinds of additional PC components.

    Another feature of DirectX is the capability of DirectX applications to run side by side with non DirectX applications without causing any system problems. Lastly, DirectX would have the performance that was capable in DOS while meeting all the other specifications.

    What does DirectX do.
    DirectX provides a key set of tools and commands to enhance games and other multimedia applications allowing the hardware and the software to "talk" to each other with much greater ease. The API gives multimedia applications greater access to the advanced features of high-performance hardware such as three-dimensional (3D) graphics acceleration chips and uber sound cards. They also control many other lower-level functions; this includes two-dimensional (2D) graphics acceleration; support for the wide range of input devices such as joysticks/joy-pads, keyboards, mice, controls sound mixing and sound output on a vast range of audio hardware, controls networking and multiplayer gaming, and control over various multimedia streaming formats. With each new revision, more feature support is added for emerging technology so that developers can begin to use that new technology as soon as possible, and hopefully, bringing the technology to us sooner.

    Major Components
    The following are the major components (with their related function) that make up DirectX:

    DirectDraw - 2D Graphics
    Direct3D - 3D Graphics
    DirectSound - 2D Sound
    DirectSound3D - 3D Sound
    DirectMusic - Music
    DirectPlay - Network/Multiplayer
    DirectInput - Input Devices

    Do I need DirectX?
    If you play almost any game on a Windows98 or later machine, then you will more than likely be using or will require some component of DirectX. Fortunately, if applications require a certain version of DirectX then they will invariably come with the appropriate DirectX installer on the software CD, guaranteeing that you have the required version in order to run the application or play the game. But that's not everything. You can upgrade your version of DirectX even if you don’t actually need it. By doing so, you will implement the latest version of the API’s, which may contain bug fixes and optimizations for certain parts of many programs. This could, theoretically, give you better performance in your game of choice, a better quality of sound for your music or make streaming media play more smoothly. Also, by installing the latest version of DirectX, you may unlock a previously unused feature of your super-duper graphics card (Pixel shader 3.0 in Far-Cry for instance). But you may also need to get later drivers for your sound card, etc, in order to start using the new features to their full extent.

    Now I want it, where do I get it?
    Windows 95, Windows 98, Windows 98 SE, Windows Millennium Edition (Windows Me), Windows 2000, Windows Server 2003, and Windows XP all have support for DirectX. However, the highest version of DirectX that Windows 95 can use is version 8.0a, which can be found here. For everyone else, you can go right up to the latest released version (9.0c), which you can download here. What about NT though? DirectX is also available for windows NT4.0 as part of Service pack 6. Although why you want to run this OS with multimedia applications is a bit of a mystery to me ;-)

    After installation some drivers show up as not certified. What’s wrong?
    Driver updates from hardware vendors have to be submitted to Microsoft where they undergo a series of tests before being certified (WHQL). However, sometimes the vendor may simultaneously release the updates to the general public and MS without waiting for certification. Such drivers may offer DirectX functionality but won’t be certified. So, before installing new drivers, you may want to check for DirectX compatibility in the vendor’s release notes.

    How do I uninstall DirectX?
    DirectX is a Windows system component and as with so many Windows system components (like MSN messenger), once it’s on your computer, you will have a very hard time getting it off again. So if it goes wrong or anything like that, you are a bit stuck. Thankfully there are some options. Later versions of windows OS have System Restore points. It is always a good idea to make a System Restore point when installing new drivers or other things like DirectX. Also, there is the DirectX diagnostic tool. Unfortunately, Microsoft doesn’t tell you where it is when you install DirectX, no icon is placed in the control panel or in the start menu listings. To get to it, you have to find it (\windows\system32\dxdiag.exe). The diagnostic tool allows you to control various aspects of the DirectX API (turn them on, off, up, down, etc.) and it’s also handy to find out what version of DirectX you are currently running. There are also third-party DirectX "uninstallers" around, however trying to uninstall DirectX could trash your box.

    What is to come in the future?
    At the moment, the latest version of DirectX is version 9.0c. This version has added support for things like Shader Model 3.0, demonstrated here on HardOCP. Soon, more and more games will feature the various enhancements of 9.0c.

    The next major release of DirectX will bring about even more changes. Microsoft is going to unify the graphical API's of DirectX under the new name of the Windows Graphics Foundation and Avalon, which is planned for release with the new Longhorn version of Windows. DirectX should still exist, but only in name and only for the remaining core components. This means that the next generation of Graphics cards will no longer say that they are DirectX compatible, but instead will be supporting WGF1.0 (or something similar to that). At this time, it is not known if any other portion of DirectX is going to splinter off to form it's own "club." Functions of your controllers and sound cards will still be under the control of the main set of DirectX API's, but Longhorn is still a way off yet and things may change between now and then.

    Final Thoughts
    While something like OpenGL and the now ancient Glide (3dfx) are graphics only API's, DirectX is a collection of functions that govern sound, video, network communications as well as the graphics. DirectX performs the vital function of interpreting the instructions from software into commands for your graphics and sound cards or allowing you to bind a key to the twenty fifth button on your mouse. Giving greater levels of compatibility between new hardware and old games (and also old hardware with new games). DirectX's chief advantage comes from providing all of these functions while remaining almost completely invisible to the end user.









    Tutorial: The Magic Of DirectX





Top

Welcome |  Latest News |  Tools |  Demos |  Tutorials |  Reference |  Register |  Downloads
FAQ |  Links |  Site Information

This page is Copyright © 2020++ Darren John Dwyer, Lightning Ridge, Australia. All Rights Reserved.
Borland C++ Builder, CBuilder, etc are Trademarks of Borland Corporation.
DirectX, DirectDraw, Windows, etc are Trademarks of Microsoft Corporation.