[PATCH 3/5] d3drm: Fix frame object creation method. (v3 resend)

Henri Verbeet hverbeet at gmail.com
Sun Jun 19 08:19:25 CDT 2016


On 19 June 2016 at 00:29, Aaryaman Vasishta <jem456.vasishta at gmail.com> wrote:
> diff --git a/dlls/d3drm/d3drm_private.h b/dlls/d3drm/d3drm_private.h
> index 817accf..1f4094b 100644
> --- a/dlls/d3drm/d3drm_private.h
> +++ b/dlls/d3drm/d3drm_private.h
> @@ -44,6 +44,27 @@ struct d3drm_texture
>      D3DRMIMAGE *image;
>  };
>
> +struct d3drm_frame
> +{
> +    IDirect3DRMFrame IDirect3DRMFrame_iface;
> +    IDirect3DRMFrame2 IDirect3DRMFrame2_iface;
> +    IDirect3DRMFrame3 IDirect3DRMFrame3_iface;
> +    IDirect3DRM *d3drm;
> +    LONG ref;
> +    struct d3drm_frame *parent;
> +    ULONG nb_children;
> +    ULONG children_capacity;
> +    IDirect3DRMFrame3** children;
> +    ULONG nb_visuals;
> +    ULONG visuals_capacity;
> +    IDirect3DRMVisual** visuals;
> +    ULONG nb_lights;
> +    ULONG lights_capacity;
> +    IDirect3DRMLight** lights;
> +    D3DRMMATRIX4D transform;
> +    D3DCOLOR scenebackground;
> +};
"IDirect3DRMFrame3 **children", "IDirect3DRMVisual **visuals" and
"IDirect3DRMLight **lights".

> @@ -51,11 +72,11 @@ void d3drm_object_cleanup(IDirect3DRMObject *iface, struct d3drm_object *object)
>
>  HRESULT d3drm_device_create(struct d3drm_device **out) DECLSPEC_HIDDEN;
>  HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm) DECLSPEC_HIDDEN;
> +HRESULT d3drm_frame_create(struct d3drm_frame **frame, IUnknown* parent_frame, IDirect3DRM *d3drm) DECLSPEC_HIDDEN;
"IUnknown *parent_frame".

> -HRESULT Direct3DRMFrame_create(REFIID riid, IUnknown *parent, IUnknown **out)
> +HRESULT d3drm_frame_create(struct d3drm_frame **frame, IUnknown* parent_frame, IDirect3DRM *d3drm)
Like above.

>  {
>      struct d3drm_frame *object;
> -    HRESULT hr;
> +    HRESULT hr = D3DRM_OK;
>
> -    TRACE("riid %s, parent %p, out %p.\n", debugstr_guid(riid), parent, out);
> +    TRACE("out %p, parent_frame %p, d3drm %p.\n", frame, parent_frame, d3drm);
"frame" instead of "out".

> +    if (parent_frame)
>      {
>          IDirect3DRMFrame3 *p;
>
> -        hr = IDirect3DRMFrame_QueryInterface(parent, &IID_IDirect3DRMFrame3, (void**)&p);
> +        hr = IDirect3DRMFrame_QueryInterface(parent_frame, &IID_IDirect3DRMFrame3, (void**)&p);
>          if (hr != S_OK)
"if (FAILED(hr = ...))" and "(void **)".



More information about the wine-devel mailing list