I just looked the patch over quickly since you mentioned d3d9, but here are a few things I noticed:
- hr = IDirect3DSurface9_LockRect(info->lpSurf, &lock, NULL, D3DLOCK_DISCARD);
- assert(hr == S_OK);
...
- hr = IDirect3DDevice9_Clear(This->d3d9_dev, 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
- if (hr != S_OK)
I realize D3D_OK and S_OK have the same value, but using SUCCEEDED()/FAILED() would probably be more appropriate. Happens in a few other places as well.
+// info.dwFlags = VMR9AllocFlag_TextureSurface;
...
- FIXME("SendMessageW: %08x\n", hr);
You'll probably want to remove these.