[PATCH 4/9] d3drm: Implement IDirect3DRMViewport*::Init. (v5)

Henri Verbeet hverbeet at gmail.com
Fri Jul 15 07:04:21 CDT 2016


On 15 July 2016 at 12:32, Aaryaman Vasishta <jem456.vasishta at gmail.com> wrote:
> diff --git a/dlls/d3drm/viewport.c b/dlls/d3drm/viewport.c
> index 9fd627d..743fb75 100644
> --- a/dlls/d3drm/viewport.c
> +++ b/dlls/d3drm/viewport.c
> @@ -270,19 +279,126 @@ static HRESULT WINAPI d3drm_viewport1_GetClassName(IDirect3DRMViewport *iface, D
>  static HRESULT WINAPI d3drm_viewport2_Init(IDirect3DRMViewport2 *iface, IDirect3DRMDevice3 *device,
>          IDirect3DRMFrame3 *camera, DWORD x, DWORD y, DWORD width, DWORD height)
>  {
> -    FIXME("iface %p, device %p, camera %p, x %u, y %u, width %u, height %u stub!\n",
> +    struct d3drm_viewport *viewport = impl_from_IDirect3DRMViewport2(iface);
> +    D3DVIEWPORT vp;
> +    D3DVALUE scale;
> +    IDirect3D *d3d1 = NULL;
> +    D3DCOLOR color;
> +    IDirect3DDevice *d3d_device = NULL;
> +    IDirect3DMaterial *material = NULL;
> +    D3DMATERIAL mat;
> +    D3DMATERIALHANDLE hmat;
> +    HRESULT hr = D3DRM_OK;
> +
...
> +    color = IDirect3DRMFrame3_GetSceneBackground(camera);
> +    /* Create material (ambient/diffuse/emissive?), set material */
> +    if (FAILED(hr = IDirect3D_CreateMaterial(d3d1, &material, NULL)))
> +        goto cleanup;
> +
> +    memset(&mat, 0, sizeof(mat));
> +    memcpy(&mat.diffuse, &color, sizeof(color));
That doesn't look right.



More information about the wine-devel mailing list