Emil Velikov (@xexaxo) commented about dlls/wineandroid.drv/window.c:
- TRACE( "flushing %p hwnd %p surface %s rect %s bits %p alpha %02x key %08x region %u rects\n",
surface, surface->hwnd, wine_dbgstr_rect( &surface->header.rect ),
wine_dbgstr_rect( &rect ), surface->bits, surface->alpha, (int)surface->color_key,
surface->region_data ? (int)surface->region_data->rdh.nCount : 0 );
- rc.left = rect.left;
- rc.top = rect.top;
- rc.right = rect.right;
- rc.bottom = rect.bottom;
rc.left = dirty->left;
rc.top = dirty->top;
rc.right = dirty->right;
rc.bottom = dirty->bottom;
if (!surface->window->perform( surface->window, NATIVE_WINDOW_LOCK, &buffer, &rc ))
The commit changes the behaviour in the Android driver. Namely the perform callbacks (and all the copying below) are called with a lock held.
Haven't checked if it matters here, but it did for Mesa/egl/android. Then again the latter is an EGL implementation, not a user.
Might be worth adding a note in the commit message IMHO.
That aside - massive thanks for all the amazing work in the drivers. Do you plan on further reducing/nuking window_surface_funcs?