View Single Post
Old 28-11-07, 16:18   #1596
Join Date: Jul 2006
Posts: 380
Default re

Each version of DirectX is 100 percent compatible with previous versions, that is a requirement of COM. That is why you can install DX8 or 9 on your computer and still run TRLE. So it should be possible to still use the force feedback joystick with the DX6 calls even if the driver is DX8. DirectX will translate the calls as required to make them work.
It dosent works like that; when you want to make a program using DX6 features you call to the COM for retrieve an object of class IDirect3D6 and then you use all procedure, functions from that class. when you install DX9 in your computer it just mean now the COM can return a object class IDirect3D9 however for backward copatibility it is available to return older IDirect3D8, IDirect3D7, IDirect3D6... so any program coded for thaose version still running when rquesting that object.

There is somthing worse... IDirect3D8 is not exacty the same IDirect3D7 (and so on) with more functions, in every new version the nice Microsoft architects makes severals changes in the interface, some function are removed, or have new parameters or dosent work in the same way; they say they dont want to be tied to backward compatibility to implement new features; so your DX6 program have to be revised/changed if you want to use the new DX version.

Hmm, very interesting... But how DX can allow application to use newer functions, if application initializes older interface? I. e. if device is created with DirectInputCreate (not DirectInput8Create), how DirectX will allow to use DirectInput8 functions for it? Is it some kind of forward-compatibility?
Exactly, if tomb4.exe requested DirectInput6Create then you can only call dx6 functions using that Object; if you want to use functions for DirectInput8Create then you have to request your own DirectInput8Create class in your own Dll and call Dx8 functions from there.

Last edited by Kikiloco; 28-11-07 at 16:24.
Kikiloco is offline   Reply With Quote