Hi,
I’m trying to compile panda3d (using makepanda) with both dx9 and dx8 support. Compiling it with dx9 support is no problem, but I can’t get the dx8 part to compile.
here’s the error I get:
cl /wd4996 /Fobuilt/tmp/dxgsg8_composite.obj /nologo /c /Ithirdparty/win-python/include /I"sdks/directx8/include" /Ibuilt/tmp /Ipanda/src/dxgsg8 /Ipanda/metalibs/pandadx8 /Ibuilt/include /MD /Zi /Ox /Ob2 /DFORCE_INLINING /DNDEBUG /GL /Fdbuilt/tmp/dxgsg8_composite.pdb /DBUILDING_PANDADX /EHsc /Zm300 /DWIN32_VC /DWIN32 /W3 panda/src/dxgsg8/dxgsg8_composite.cxx
dxgsg8_composite.cxx
...\dxTextureContext8.cxx(1156) : error C2664: 'D3DXFilterTexture' : cannot convert parameter 1 from 'IDirect3DBaseTexture8 *' to 'LPDIRECT3DTEXTURE8'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
...\dxTextureContext8.cxx(1324) : error C2664: 'D3DXFilterTexture' : cannot convert parameter 1 from 'IDirect3DBaseTexture8 *' to 'LPDIRECT3DTEXTURE8'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Storing dependency cache.
Elapsed Time: 26 min 0 sec
So the problem is that D3DXFilterTexture function in d3dx8 can’t use the BaseTexture8 pointer, but instead expects a (2d)texture pointer.
In the dxgsg9, more or less the same code is used, but there the D3DXFilterTexture function actually accepts the base pointer of type IDirect3DBaseTexture9.
Since I already had to jump through a few loops to get to this point, I figured I’d rather ask how this is supposed to work.
My best bet is that I’m using an too old DX8 sdk… (The sdk I’m using seems to be the original DX 8.0, from Oct. 2000.)
There seems to be a DX 8.0b sdk from 2001, but I can’t download that anywhere.
How do you guys at Disney or CMU build the DX8 support?
The new DX SDK also has some headers/libs for DX8, but not for D3DX8…
BTW, here some info on my config:
source version: 1.4.1
visual studio: 2005 express
build-system: makepanda
os: windows vista
Thanks in advance,
Erik