Their surfaces may be used.
---
x11drv already supports this (and we test for it in opengl32/tests/opengl.c:test_message_window). x11drv doesn't make an x11drv_win_data for message-only windows when they are initially created in X11DRV_create_win_data, but does later if a surface is requested (x11drv_client_surface_create -> create_client_window). I don't see much of a reason to do it lazily in macdrv. We won't make a Cocoa window for message-only windows in macdrv_create_win_data since the parent isn't the desktop, so we're really just allocating space for the macdrv_win_data. And plus opengl.c:macdrv_surface_create uses `get_win_data(hwnd)` as its check for whether a hwnd is in-process; we'd have to adjust that logic (and shuffle some things around in that function) if we were to have macdrv_client_surface_create potentially create a macdrv_win_data.