Commit 4fe014cb authored by Stefan Dösinger's avatar Stefan Dösinger Committed by Alexandre Julliard

wined3d: Fix sRGB->RGB copy condition.

The old condition happened to work, because SFLAG_INTEXTURE was not set(we're loading it), and neither was SFLAG_INDRAWABLE(otherwise INTEXTURE would be set too). If the fbo INDRAWABLE == INTEXTURE is replaced by INDRAWABLE == INSRGBTEX this doesn't hold true any longer because SFLAG_INDRAWABLE is set, but not used because the drawable readback is never used for fbos.
parent 33ca3c02
......@@ -4851,12 +4851,18 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_LoadLocation(IWineD3DSurface *iface, D
IWineD3DSurfaceImpl_LoadLocation(iface, SFLAG_INSYSMEM, rect);
}
} else {
if((This->Flags & SFLAG_LOCATIONS) == SFLAG_INSRGBTEX) {
if((This->Flags & (SFLAG_INSRGBTEX | SFLAG_INSYSMEM)) == SFLAG_INSRGBTEX) {
/* Performance warning ... */
FIXME("%p: Downloading srgb texture to reload it as rgb\n", This);
IWineD3DSurfaceImpl_LoadLocation(iface, SFLAG_INSYSMEM, rect);
}
}
if(!(This->Flags & SFLAG_INSYSMEM)) {
/* Should not happen */
ERR("Trying to load a texture from sysmem, but SFLAG_INSYSMEM is not set\n");
/* Lets hope we get it from somewhere... */
IWineD3DSurfaceImpl_LoadLocation(iface, SFLAG_INSYSMEM, rect);
}
if (!device->isInDraw) ActivateContext(device, NULL, CTXUSAGE_RESOURCELOAD);
surface_bind_and_dirtify(This, srgb);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment