Originally Posted by
VirtualAce
What are you trying to do? Hardware acceleration inside of DirectX has nothing to do with hardware acceleration inside of Aero or some other desktop application. You can disable hardware acceleration in Windows 7 via settings in the Control Panel. You can also toggle said settings via code and usage of Win32. I am not sure if .NET supports this or not. You can disable hardware acceleration in WPF through the settings file but this would only be done if certain WPF features did not work properly on the various platforms and hardware configurations that your software must support. This happens more often than one might think.
To disable hardware acceleration inside of DirectX 9 you either create a device with hardware transform and lighting disabled (via a flag when the device is created) or create a reference device (which is awful). Since Direct3D 10 and 11 no longer support the fixed function pipeline I am not sure if they support disabling the hardware transform and lighting. I seriously doubt they do since all of this is done via shaders and the use of shaders implies and necessitates hardware acceleration since the shaders run on the GPU.
Video device reset in DirectX does not disable hardware acceleration....although it can be used to do so. A video device reset is performed when the device has been lost due to a task switch (ALT-TAB) or to set certain devices settings. One could disable hardware T&L in DirectX 9 via a device reset but this would only be done in response to a user request. More often than not this option is not supported because it has very little use.
The toggle you wish to create is already readily available in the OS.