On 26/11/05, H. Verbeet hverbeet@gmail.com wrote:
Are StateBlocks supposed to be nestable? I don't think they currently are on Wine, but my debug output appears to suggest they should be:
Actually, nevermind that comment. They're not. However, BeginStateBlock should return D3DERR_INVALIDCALL when called twice in a row.
Executing the above sequence on Windows gives: BeginStateBlock returned: 00000000 BeginStateBlock returned: 8876086C EndStateBlock returned: 00000000 BeginStateBlock returned: 00000000 EndStateBlock returned: 00000000 EndStateBlock returned: 8876086C
After that, the demo dies on an AddRef in IWineD3DPixelShaderImpl_GetParent. Replacing *parent= (IUnknown*) parent; with *parent = This->parent; seems to be enough to get it going again.
Right now, the demo dies somewhere in IWineD3DPixelShaderImpl_SetFunction. At first sight, I'd say it never detects the end of its input and just keeps on reading untill it generates an access violation.