mirror of
https://github.com/reactos/wine.git
synced 2024-11-29 06:30:37 +00:00
Start to implement TestCooperativeLevel.
This commit is contained in:
parent
5173234ea8
commit
329d017db3
@ -5844,8 +5844,27 @@ BOOL WINAPI IWineD3DDeviceImpl_ShowCursor(IWineD3DDevice* iface, BOOL bShow
|
|||||||
|
|
||||||
HRESULT WINAPI IWineD3DDeviceImpl_TestCooperativeLevel(IWineD3DDevice* iface) {
|
HRESULT WINAPI IWineD3DDeviceImpl_TestCooperativeLevel(IWineD3DDevice* iface) {
|
||||||
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface;
|
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *) iface;
|
||||||
FIXME("(%p) : stub\n", This); /* No way of notifying yet! */
|
TRACE("(%p) : state (%lu)\n", This, This->state);
|
||||||
return D3D_OK;
|
/* TODO: Implement wrapping of the WndProc so that mimimize and maxamise can be monitored and the states adjusted. */
|
||||||
|
switch (This->state) {
|
||||||
|
case D3D_OK:
|
||||||
|
return D3D_OK;
|
||||||
|
case D3DERR_DEVICELOST:
|
||||||
|
{
|
||||||
|
ResourceList *resourceList = This->resources;
|
||||||
|
while (NULL != resourceList) {
|
||||||
|
if (((IWineD3DResourceImpl *)resourceList->resource)->resource.pool == D3DPOOL_DEFAULT /* TODO: IWineD3DResource_GetPool(resourceList->resource)*/)
|
||||||
|
return D3DERR_DEVICENOTRESET;
|
||||||
|
resourceList = resourceList->next;
|
||||||
|
}
|
||||||
|
return D3DERR_DEVICELOST;
|
||||||
|
}
|
||||||
|
case D3DERR_DRIVERINTERNALERROR:
|
||||||
|
return D3DERR_DRIVERINTERNALERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Unknown state */
|
||||||
|
return D3DERR_DRIVERINTERNALERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1639,6 +1639,9 @@ HRESULT WINAPI IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT Adapter, D3DDEV
|
|||||||
IWineD3D_AddRef(object->wineD3D);
|
IWineD3D_AddRef(object->wineD3D);
|
||||||
object->parent = parent;
|
object->parent = parent;
|
||||||
|
|
||||||
|
/* Set the state up as invalid until the device is fully created */
|
||||||
|
object->state = D3DERR_DRIVERINTERNALERROR;
|
||||||
|
|
||||||
TRACE("(%p)->(Adptr:%d, DevType: %x, FocusHwnd: %p, BehFlags: %lx, PresParms: %p, RetDevInt: %p)\n", This, Adapter, DeviceType,
|
TRACE("(%p)->(Adptr:%d, DevType: %x, FocusHwnd: %p, BehFlags: %lx, PresParms: %p, RetDevInt: %p)\n", This, Adapter, DeviceType,
|
||||||
hFocusWindow, BehaviourFlags, pPresentationParameters, ppReturnedDeviceInterface);
|
hFocusWindow, BehaviourFlags, pPresentationParameters, ppReturnedDeviceInterface);
|
||||||
TRACE("(%p)->(DepthStencil:(%u,%s), BackBufferFormat:(%u,%s))\n", This,
|
TRACE("(%p)->(DepthStencil:(%u,%s), BackBufferFormat:(%u,%s))\n", This,
|
||||||
@ -1736,8 +1739,15 @@ HRESULT WINAPI IWineD3DImpl_CreateDevice(IWineD3D *iface, UINT Adapter, D3DDEV
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* set the state of the device to valid */
|
||||||
|
object->state = D3D_OK;
|
||||||
|
|
||||||
return D3D_OK;
|
return D3D_OK;
|
||||||
create_device_error:
|
create_device_error:
|
||||||
|
|
||||||
|
/* Set the device state to error */
|
||||||
|
object->state = D3DERR_DRIVERINTERNALERROR;
|
||||||
|
|
||||||
if (object->updateStateBlock != NULL) {
|
if (object->updateStateBlock != NULL) {
|
||||||
IWineD3DStateBlock_Release((IWineD3DStateBlock *)object->updateStateBlock);
|
IWineD3DStateBlock_Release((IWineD3DStateBlock *)object->updateStateBlock);
|
||||||
object->updateStateBlock = NULL;
|
object->updateStateBlock = NULL;
|
||||||
|
@ -536,6 +536,9 @@ typedef struct IWineD3DDeviceImpl
|
|||||||
/* Debug stream management */
|
/* Debug stream management */
|
||||||
BOOL debug;
|
BOOL debug;
|
||||||
|
|
||||||
|
/* Device state management */
|
||||||
|
HRESULT state;
|
||||||
|
|
||||||
/* Screen buffer resources */
|
/* Screen buffer resources */
|
||||||
glContext contextCache[CONTEXT_CACHE];
|
glContext contextCache[CONTEXT_CACHE];
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user