Fwd: dlls/wined3d/device.c GetCreationParameters

Jacek Caban jacek at codeweavers.com
Fri Jan 20 05:25:44 CST 2006


Hello.

Al Tobey wrote:
> According to MSDN, this just sets a pointer to the creation
> parameters.    The attached patch makes this function work, but I'm
> not sure if returning a pointer to the original parameters is the
> right approach or if they should be copied first.
>
> This patch makes a bunch of the Ogre3d demos work, which are great for
> testing since you can run the same demo in OpenGL, D3D9, and D3D7
> modes.
>
> The attached version incorporates all of the feedback from wine-devel
> and should be ready to go.
>
> -Al Tobey
>   
> ------------------------------------------------------------------------
>
> diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
> index b057a36..f1bfc01 100644
> --- a/dlls/wined3d/device.c
> +++ b/dlls/wined3d/device.c
> @@ -6129,26 +6129,23 @@
>      IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
>      /** FIXME: always true at the moment **/
>      if(bEnableDialogs == FALSE) {
>          FIXME("(%p) Dialogs cannot be disabled yet\n", This);
>      }
>      return D3D_OK;
>  }
>  
> -
>  HRESULT  WINAPI  IWineD3DDeviceImpl_GetCreationParameters(IWineD3DDevice *iface, D3DDEVICE_CREATION_PARAMETERS *pParameters) {
>      IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface;
>  
> -    FIXME("(%p) : stub\n", This);
>   
You should change it to TRACE instead of deleting debug messages.
> -    /* Setup some reasonable defaults */
> -    pParameters->AdapterOrdinal = 0; /* always for now */
> -    pParameters->DeviceType = D3DDEVTYPE_HAL; /* always for now */
> -    pParameters->hFocusWindow = 0;
> -    pParameters->BehaviorFlags =0;
> +    if (This == NULL || pParameters == NULL)
>   
You really shouldn't check if This is NULL here. I'm sure this patch 
won't be applied with this.
> +        return D3DERR_INVALIDCALL;
> +
> +    memcpy(pParameters, &This->createParms, sizeof(D3DDEVICE_CREATION_PARAMETERS));
>      return D3D_OK;
>  }
>  
>  void WINAPI IWineD3DDeviceImpl_SetGammaRamp(IWineD3DDevice * iface, UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) {
>      IWineD3DSwapChain *swapchain;
>      HRESULT hrc = D3D_OK;
>  
>      TRACE("Relaying  to swapchain\n");
>   
Thanks,
    Jacek



More information about the wine-devel mailing list