Why don't you come back and play once you've actually developed something with DirectX, UR...
No, they do not -- you had to go through the OS to do everything, and it was painfully slow for gaming.
DirectX provides an interface, indeed an abstracted interface, which does allow direct access to the hardware, through the drivers.
You cannot write directly to the hardware except what the drivers permit you to, and the code that tells the drivers what to do is DirectX. The programmer just tells DirectX what it wants done, and DirectX sends the appropriate hardware calls to the appropriate drivers.
This is totally incorrect, anyone who has spent 5 minutes with DirectX before could tell you that.
I'm not going to bother going into great detail, but I strongly suggest you go buy a book or at least look up tutorials online on the DirectX infrastructure and how it works.
Personally, I've worked through a 900+ page book called Special Effects Programming with Direct X (8.0) last summer, and the closest thing that comes close to accessing the hardware directly is using PS or VS code, and even in that case it's regulated by DirectX. And in 9.0, it's abstracted even further with HLSL (Higher Level Shading Language), which is generic across all cards.
![Head against the wall](https://apolyton.net/core/images/smilies/banghead.gif)
DirectX makes game development radically simpler on the PC. Instead of writing code for S3 cards, for ATI cards, for Nvidia cards, for Intel cards, etc -- you write for one card.
Here's how it works: Game -> DirectX -> Hardware. If you eliminated DirectX, you'd need to write code individually for each card, like Carmack has to do for modern OpenGL extensions or how all game devs had to do it in the DOS days.
Why do you think virtually every Windows game now is DirectX based, if it's as useless as you imply?
No, UR, you were blown away in all of those threads, including this one. You're just too pigheaded and rooted in ignorance to know or care.
Last year -- and unlike you, mine was on modern OSes. Not to mention I've got a couple years of DirectX programming experience, and you've got, what, 0 minutes?
Um. No...
Gamedevs use DirectX to access the hardware. It insulates from the hardware, providing an abstraction and access layer far faster than going through Windows itself.
How have I not proved it? I consistently shoot down your bull****, just like this thread.
You've no idea what you're talking about, and it's patently obvious, and you still sit there on your high horse talking down. Somebody has a complex...
So to finally shut you up, I'll give you some help:
Originally posted by Urban Ranger
What it is called and what it does are two different things. Besides, isn't hardware abstraction one of the things that an OS should do? Or, in other words, what happens to Windows machines without DirectX, e.g. 3.x, early versions of NT, etc.? Eh, do they really access hardware directly?
What it is called and what it does are two different things. Besides, isn't hardware abstraction one of the things that an OS should do? Or, in other words, what happens to Windows machines without DirectX, e.g. 3.x, early versions of NT, etc.? Eh, do they really access hardware directly?
![LOL](https://apolyton.net/core/images/smilies/lol.gif)
DirectX provides an interface, indeed an abstracted interface, which does allow direct access to the hardware, through the drivers.
You cannot write directly to the hardware except what the drivers permit you to, and the code that tells the drivers what to do is DirectX. The programmer just tells DirectX what it wants done, and DirectX sends the appropriate hardware calls to the appropriate drivers.
No, no, no. You got it wrong. You need to write your own code to directly access the hardware, bypassing the drivers.
I'm not going to bother going into great detail, but I strongly suggest you go buy a book or at least look up tutorials online on the DirectX infrastructure and how it works.
Personally, I've worked through a 900+ page book called Special Effects Programming with Direct X (8.0) last summer, and the closest thing that comes close to accessing the hardware directly is using PS or VS code, and even in that case it's regulated by DirectX. And in 9.0, it's abstracted even further with HLSL (Higher Level Shading Language), which is generic across all cards.
Oh really? So why bother having DirectX, as I pointed out above?
![Head against the wall](https://apolyton.net/core/images/smilies/banghead.gif)
DirectX makes game development radically simpler on the PC. Instead of writing code for S3 cards, for ATI cards, for Nvidia cards, for Intel cards, etc -- you write for one card.
Here's how it works: Game -> DirectX -> Hardware. If you eliminated DirectX, you'd need to write code individually for each card, like Carmack has to do for modern OpenGL extensions or how all game devs had to do it in the DOS days.
Why do you think virtually every Windows game now is DirectX based, if it's as useless as you imply?
I see you are still angry from being blown away in other threads (e.g. HTML/CSS).
When will you take your first OS course, Glonkie?
Aren't you contradicting yourself?
![Roll Eyes (Sarcastic)](https://apolyton.net/core/images/smilies/rolleyes.gif)
Gamedevs use DirectX to access the hardware. It insulates from the hardware, providing an abstraction and access layer far faster than going through Windows itself.
Prove it, or retract such utter drivel.
You've no idea what you're talking about, and it's patently obvious, and you still sit there on your high horse talking down. Somebody has a complex...
So to finally shut you up, I'll give you some help:
Microsoft® Direct3D® provides device independence through the hardware abstraction layer (HAL). The HAL is a device-specific interface, provided by the device manufacturer, that Direct3D uses to work directly with the display hardware. Applications never interact with the HAL. Rather, with the infrastructure that the HAL provides, Direct3D exposes a consistent set of interfaces and methods that an application uses to display graphics. The device manufacturer implements the HAL in a combination of 16-bit and 32-bit code under Microsoft Windows®. Under Windows NT® and Windows 2000, the HAL is always implemented in 32-bit code. The HAL can be part of the display driver or a separate dynamic-link library (DLL) that communicates with the display driver through a private interface that driver's creator defines.
The Direct3D HAL is implemented by the chip manufacturer, board producer, or original equipment manufacturer (OEM). The HAL implements only device-dependent code and performs no emulation. If a function is not performed by the hardware, the HAL does not report it as a hardware capability. Additionally, the HAL does not validate parameters; Direct3D does this before the HAL is invoked.
In DirectX 8.0, the HAL can have three different vertex processing modes: software vertex processing, hardware vertex processing, and mixed vertex processing on the same device. The pure device mode is a variant of the HAL device. The pure device type supports hardware vertex processing only, and allows only a small subset of the device state to be queried by the application. Additionally, the pure device is available only on adapters that have a minimum level of capabilities.
The Direct3D HAL is implemented by the chip manufacturer, board producer, or original equipment manufacturer (OEM). The HAL implements only device-dependent code and performs no emulation. If a function is not performed by the hardware, the HAL does not report it as a hardware capability. Additionally, the HAL does not validate parameters; Direct3D does this before the HAL is invoked.
In DirectX 8.0, the HAL can have three different vertex processing modes: software vertex processing, hardware vertex processing, and mixed vertex processing on the same device. The pure device mode is a variant of the HAL device. The pure device type supports hardware vertex processing only, and allows only a small subset of the device state to be queried by the application. Additionally, the pure device is available only on adapters that have a minimum level of capabilities.
Comment