From: Alexander Dorofeyev Date: Sun, 6 Apr 2008 21:06:25 +0000 (+0300) Subject: wined3d: Add device->isInDraw checks in LoadLocation. X-Git-Tag: wine-0.9.60~456 X-Git-Url: http://git.etersoft.ru/projects/?a=commitdiff_plain;h=7f2257ca556f607e9e91337e67a0c12d40e73199;p=wine%2Feterwine.git wined3d: Add device->isInDraw checks in LoadLocation. Prevents calling ActivateContext while holding gl lock, e.g. when preloading texture in sampler(). --- diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c index 8190a15c20..97f0438129 100644 --- a/dlls/wined3d/surface.c +++ b/dlls/wined3d/surface.c @@ -4043,7 +4043,7 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_LoadLocation(IWineD3DSurface *iface, D /* Download the surface to system memory */ if(This->Flags & SFLAG_INTEXTURE) { - ActivateContext(device, device->lastActiveRenderTarget, CTXUSAGE_RESOURCELOAD); + if(!device->isInDraw) ActivateContext(device, device->lastActiveRenderTarget, CTXUSAGE_RESOURCELOAD); surface_bind_and_dirtify(This); surface_download_data(This); @@ -4101,7 +4101,7 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_LoadLocation(IWineD3DSurface *iface, D } else { /* Upload from system memory */ d3dfmt_get_conv(This, TRUE /* We need color keying */, TRUE /* We will use textures */, &format, &internal, &type, &convert, &bpp, This->srgb); - ActivateContext(device, device->lastActiveRenderTarget, CTXUSAGE_RESOURCELOAD); + if(!device->isInDraw) ActivateContext(device, device->lastActiveRenderTarget, CTXUSAGE_RESOURCELOAD); surface_bind_and_dirtify(This); ENTER_GL();