On Fri, Jun 17, 2016 at 6:44 PM, Henri Verbeet hverbeet@gmail.com wrote:
On 17 June 2016 at 09:38, Aaryaman Vasishta jem456.vasishta@gmail.com wrote:
v4: Replaced GetVisuals, GetParent and GetTransform with thunks to
version 2.
v3: Added version 1->3 thunks for only those frame1 methods that have
tests (see test_Frame). The rest will be stubs returning E_NOTIMPL. Also avoid the use of QI in Add/DeleteChild.
Doesn't that potentially break currently working applications? And while having tests is great, I'm not sure I agree with the premise that it's better to return E_NOTIMPL than to forward to an implementation that may have subtle differences but probably doesn't in most cases.
I don't disagree with you. I just want an acceptable patch for this as I'll need it for implementing viewports. Also a lot of version 2 stuff uses version 1 frames as well, which makes it more important. I've CC'd Stefan in this mail, hopefully we can agree on something which works for all.
+static HRESULT WINAPI d3drm_frame1_QueryInterface(IDirect3DRMFrame
*iface, REFIID riid, void **out)
+{
- struct d3drm_frame *frame = impl_from_IDirect3DRMFrame(iface);
- TRACE("iface %p, riid %s, out %p.\n", iface, debugstr_guid(riid),
out);
- return
IDirect3DRMFrame3_QueryInterface(&frame->IDirect3DRMFrame3_iface, riid, out);
+}
This may have come up before, but any reason you can't call d3drm_frame3_QueryInterface() directly here?
I could probably put these stubs after version 3, but wouldn't that make the version order in the file 2->3->1? Maybe a separate patch could rearrange it to 3->2->1. Maybe we could do that after these stubs are added.
Cheers, Aaryaman