ddraw: Use unsafe_impl_from_IDirect3DViewport3 for application provided interfaces.
This commit is contained in:
parent
f0354fde02
commit
f44734b724
|
@ -469,6 +469,8 @@ struct IDirect3DViewportImpl
|
|||
IDirect3DMaterialImpl *background;
|
||||
};
|
||||
|
||||
IDirect3DViewportImpl *unsafe_impl_from_IDirect3DViewport3(IDirect3DViewport3 *iface) DECLSPEC_HIDDEN;
|
||||
|
||||
/* Helper functions */
|
||||
void viewport_activate(IDirect3DViewportImpl* This, BOOL ignore_lights) DECLSPEC_HIDDEN;
|
||||
void d3d_viewport_init(IDirect3DViewportImpl *viewport, IDirectDrawImpl *ddraw) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -750,7 +750,7 @@ IDirect3DDeviceImpl_3_AddViewport(IDirect3DDevice3 *iface,
|
|||
IDirect3DViewport3 *Viewport)
|
||||
{
|
||||
IDirect3DDeviceImpl *This = device_from_device3(iface);
|
||||
IDirect3DViewportImpl *vp = (IDirect3DViewportImpl *)Viewport;
|
||||
IDirect3DViewportImpl *vp = unsafe_impl_from_IDirect3DViewport3(Viewport);
|
||||
|
||||
TRACE("iface %p, viewport %p.\n", iface, Viewport);
|
||||
|
||||
|
@ -808,7 +808,7 @@ static HRESULT WINAPI IDirect3DDeviceImpl_1_AddViewport(IDirect3DDevice *iface,
|
|||
static HRESULT WINAPI IDirect3DDeviceImpl_3_DeleteViewport(IDirect3DDevice3 *iface, IDirect3DViewport3 *viewport)
|
||||
{
|
||||
IDirect3DDeviceImpl *device = device_from_device3(iface);
|
||||
IDirect3DViewportImpl *vp = (IDirect3DViewportImpl *)viewport;
|
||||
IDirect3DViewportImpl *vp = unsafe_impl_from_IDirect3DViewport3(viewport);
|
||||
|
||||
TRACE("iface %p, viewport %p.\n", iface, viewport);
|
||||
|
||||
|
@ -875,7 +875,7 @@ IDirect3DDeviceImpl_3_NextViewport(IDirect3DDevice3 *iface,
|
|||
DWORD Flags)
|
||||
{
|
||||
IDirect3DDeviceImpl *This = device_from_device3(iface);
|
||||
IDirect3DViewportImpl *vp = (IDirect3DViewportImpl *)Viewport3;
|
||||
IDirect3DViewportImpl *vp = unsafe_impl_from_IDirect3DViewport3(Viewport3);
|
||||
struct list *entry;
|
||||
|
||||
TRACE("iface %p, viewport %p, next %p, flags %#x.\n",
|
||||
|
@ -1703,7 +1703,7 @@ IDirect3DDeviceImpl_3_SetCurrentViewport(IDirect3DDevice3 *iface,
|
|||
IDirect3DViewport3 *Direct3DViewport3)
|
||||
{
|
||||
IDirect3DDeviceImpl *This = device_from_device3(iface);
|
||||
IDirect3DViewportImpl *vp = (IDirect3DViewportImpl *)Direct3DViewport3;
|
||||
IDirect3DViewportImpl *vp = unsafe_impl_from_IDirect3DViewport3(Direct3DViewport3);
|
||||
|
||||
TRACE("iface %p, viewport %p.\n", iface, Direct3DViewport3);
|
||||
|
||||
|
|
|
@ -1115,6 +1115,13 @@ static const struct IDirect3DViewport3Vtbl d3d_viewport_vtbl =
|
|||
IDirect3DViewportImpl_Clear2,
|
||||
};
|
||||
|
||||
IDirect3DViewportImpl *unsafe_impl_from_IDirect3DViewport3(IDirect3DViewport3 *iface)
|
||||
{
|
||||
if (!iface) return NULL;
|
||||
assert(iface->lpVtbl == &d3d_viewport_vtbl);
|
||||
return CONTAINING_RECORD(iface, IDirect3DViewportImpl, lpVtbl);
|
||||
}
|
||||
|
||||
void d3d_viewport_init(IDirect3DViewportImpl *viewport, IDirectDrawImpl *ddraw)
|
||||
{
|
||||
viewport->lpVtbl = &d3d_viewport_vtbl;
|
||||
|
|
Loading…
Reference in New Issue