[PATCH 04/10] d3drm: Introduce a d3drm_matrix structure.
Jeff Smith
whydoubt at gmail.com
Thu Jun 20 00:45:20 CDT 2019
On Wed, Jun 19, 2019 at 5:01 PM Henri Verbeet <hverbeet at codeweavers.com> wrote:
> @@ -1432,9 +1435,7 @@ static HRESULT WINAPI d3drm_frame2_GetTransform(IDirect3DRMFrame2 *iface, D3DRMM
>
> TRACE("iface %p, matrix %p.\n", iface, matrix);
>
> - memcpy(matrix, frame->transform, sizeof(D3DRMMATRIX4D));
> -
> - return D3DRM_OK;
> + return d3drm_frame3_GetTransform(&frame->IDirect3DRMFrame3_iface, NULL, matrix);
> }
>
> static HRESULT WINAPI d3drm_frame1_GetTransform(IDirect3DRMFrame *iface, D3DRMMATRIX4D matrix)
> @@ -1443,7 +1444,7 @@ static HRESULT WINAPI d3drm_frame1_GetTransform(IDirect3DRMFrame *iface, D3DRMMA
>
> TRACE("iface %p, matrix %p.\n", iface, matrix);
>
> - return d3drm_frame2_GetTransform(&frame->IDirect3DRMFrame2_iface, matrix);
> + return d3drm_frame3_GetTransform(&frame->IDirect3DRMFrame3_iface, NULL, matrix);
> }
>
Hi Henri,
I would advise against implementing d3drm_frame2_GetTransform and
d3drm_frame1_GetTransform by calling on d3drm_frame3_GetTransform.
While that currently would work, because the reference is ignored, it
will not work with a properly-implemented d3drm_frame3_GetTransform.
I have such a fix in my queue for GetTransform to properly use the
reference, and so I would have to revert your changes to make it all
correct.
I suggest taking these hunks out, and just change 'memcpy(...)' to
'matrix = frame->transform' as you've done elsewhere.
-- Jeff
More information about the wine-devel
mailing list