http://bugs.winehq.org/show_bug.cgi?id=11584
--- Comment #14 from Roderick Colenbrander thunderbird2k@gmx.net 2008-02-19 16:04:40 --- As I can't reproduce the crash you should do some more testing on your own. What I would recommend as a first step is to copy all the code which you now moved below 'if (This->Flags & SFLAG_INDRAWABLE) {' to read_from_framebuffer_texture and disable the code which is now inside that function. Further these few lines should be at the start of read_from_framebuffer_texture and be removed from the code before 'if(This->Flags & SFLAG_INDRAWABLE) + 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); + surface_bind_and_dirtify(This);
Further the 'else' portion should again look like (the way I changed it in the patch) } 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); surface_bind_and_dirtify(This); ENTER_GL();
After these changes it should in theory work as before. If this is the case we can look further.