Hello,
I noticed a few people having problems building NeL with
DirectX 9.0 SDK October 2004. Some of my other projects require this
new update rather than the 2003 one, so I looked into it and was able
to get this working with a just few simple changes.
Between 2003 and 2004, Microsoft changed ID3DXEffect::Pass to a
ID3DXEffect::BeginPass/ID3DXEffect::EndPass matching pair. Apparently
they thought it was important to allow usage of the Effect::Setx
methods during a Pass. The new BeginPass/EndPass methods are
explained here:
<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/reference/d3dx/interfaces/id3dxeffect/BeginPass.asp>
All this means for us is that we have to change any calls to
ID3DXEffect::Pass to BeginPass/EndPass pairs. This occurs in three
places. The following simple fixes make NeL compatible with DirectX
9.0 SDK October 2004:
driver_direct3d.h: Line 1879:
------------------------------------------------------
Change:
drvInfo->Effect->Pass (pass);
To:
drvInfo->Effect->BeginPass (pass);
drvInfo->Effect->EndPass ();
driver_direct3d_shader.cpp: Line 1124:
------------------------------------------------------
Change:
si->Effect->Pass(k);
To:
si->Effect->BeginPass(k);
si->Effect->EndPass();
driver_direct3d_shader.cpp: 1149:
------------------------------------------------------
Change:
HRESULT r = si->Effect->Pass(passIndex);
To:
HRESULT r = si->Effect->BeginPass(passIndex);
si->Effect->EndPass();
Let me know if this works or doesn't work for you.
-Sebastian
_______________________________________________
Nel mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/nel-all