http://bugs.winehq.org/show_bug.cgi?id=2082
--- Comment #136 from Henri Verbeet hverbeet@gmail.com --- (In reply to comment #135)
Created attachment 47154 [details] Implement WGL extension to get fullscreen DC, use it in WineD3D
I think that mostly works for me, from a wined3d point of view.
- The main thing I'm wondering about is if it wouldn't make more sense to pass a window to wglCreateFullscreenDCWINE(). Some of the considerations there are what should happen when the device window is e.g. destroyed or minimized. - If we do want to pass a device name to wglCreateFullscreenDCWINE(), it should probably take a WCHAR[], and you can get at that from the context as "context->swapchain->device->adapter->DeviceName". - wglDeleteFullscreenDCWINE() seems to just be a wrapper around DeleteDC(). If possible I think it would be preferable to be able to just call ReleaseDC() on the DC returned by wglCreateFullscreenDCWINE(), and then just use wined3d_release_dc(). - If we can just use wined3d_release_dc(), context->hdc_fullscreen can just go away, but otherwise it should probably be part of the other context bitfields like current/destroyed/valid. - When there are multiple threads drawing, wglCreateFullscreenDCWINE() is going to be called multiple times for the same window / display. I didn't really review the winemac.drv changes, but will it do the right thing in that case? wglGetFullscreenDCWINE() might be a more appropriate name for how we're using this.