The common situation where GetTransform
fails but GetViewport
succeeds is where the device has been created with D3DCREATE_PUREDEVICE
.
For GetTransform
, MSDN says:
This method will not return device state for a device that is created using D3DCREATE_PUREDEVICE. If you want to use this method, you must create your device with any of the other flag values in D3DCREATE.
However, for GetViewport
, MSDN says:
Typically, methods that return state will not work on a device that is created using D3DCREATE_PUREDEVICE. This method however, will work even on a pure device.
I suspect that the device creation is being handled differently on the two operating systems. As you've tagged your question with hook, I'm guessing you may not have access to the source code, but if you do - perhaps you can post the device creation portion.