From: Zebediah Figura zfigura@codeweavers.com
--- dlls/ddraw/surface.c | 2 +- dlls/wined3d/view.c | 6 ++++-- dlls/wined3d/wined3d.spec | 2 +- include/wine/wined3d.h | 3 ++- 4 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index b75775cf252..9e283ac081f 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -1340,7 +1340,7 @@ static void ddraw_texture_rename_to(struct ddraw_texture *dst_texture, struct wi current_rtv = wined3d_device_context_get_rendertarget_view(dst_surface->ddraw->immediate_context, 0); if (current_rtv == dst_surface->wined3d_rtv) wined3d_device_context_set_rendertarget_views(dst_surface->ddraw->immediate_context, 0, 1, &rtv, FALSE); - wined3d_rendertarget_view_set_parent(rtv, dst_surface); + wined3d_rendertarget_view_set_parent(rtv, dst_surface, &ddraw_view_wined3d_parent_ops); dst_surface->wined3d_rtv = rtv;
if (dst_surface->sub_resource_idx) diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c index 11f099b7ec5..9d62c4a5089 100644 --- a/dlls/wined3d/view.c +++ b/dlls/wined3d/view.c @@ -414,11 +414,13 @@ void * CDECL wined3d_rendertarget_view_get_sub_resource_parent(const struct wine return texture->sub_resources[view->sub_resource_idx].parent; }
-void CDECL wined3d_rendertarget_view_set_parent(struct wined3d_rendertarget_view *view, void *parent) +void CDECL wined3d_rendertarget_view_set_parent(struct wined3d_rendertarget_view *view, + void *parent, const struct wined3d_parent_ops *parent_ops) { - TRACE("view %p, parent %p.\n", view, parent); + TRACE("view %p, parent %p, parent_ops %p.\n", view, parent, parent_ops);
view->parent = parent; + view->parent_ops = parent_ops; }
struct wined3d_resource * CDECL wined3d_rendertarget_view_get_resource(const struct wined3d_rendertarget_view *view) diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec index 300fc2978da..8560c1a1bb6 100644 --- a/dlls/wined3d/wined3d.spec +++ b/dlls/wined3d/wined3d.spec @@ -188,7 +188,7 @@ @ cdecl wined3d_rendertarget_view_get_resource(ptr) @ cdecl wined3d_rendertarget_view_get_sub_resource_parent(ptr) @ cdecl wined3d_rendertarget_view_incref(ptr) -@ cdecl wined3d_rendertarget_view_set_parent(ptr ptr) +@ cdecl wined3d_rendertarget_view_set_parent(ptr ptr ptr)
@ cdecl wined3d_resource_get_desc(ptr ptr) @ cdecl wined3d_resource_get_parent(ptr) diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h index ea4be6100f2..12f532b3ac2 100644 --- a/include/wine/wined3d.h +++ b/include/wine/wined3d.h @@ -2695,7 +2695,8 @@ void * __cdecl wined3d_rendertarget_view_get_parent(const struct wined3d_rendert struct wined3d_resource * __cdecl wined3d_rendertarget_view_get_resource(const struct wined3d_rendertarget_view *view); void * __cdecl wined3d_rendertarget_view_get_sub_resource_parent(const struct wined3d_rendertarget_view *view); ULONG __cdecl wined3d_rendertarget_view_incref(struct wined3d_rendertarget_view *view); -void __cdecl wined3d_rendertarget_view_set_parent(struct wined3d_rendertarget_view *view, void *parent); +void __cdecl wined3d_rendertarget_view_set_parent(struct wined3d_rendertarget_view *view, + void *parent, const struct wined3d_parent_ops *parent_ops);
HRESULT __cdecl wined3d_sampler_create(struct wined3d_device *device, const struct wined3d_sampler_desc *desc, void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_sampler **sampler);