http://bugs.winehq.org/show_bug.cgi?id=30538
--- Comment #11 from Sagawa sagawa.aki+winebugs@gmail.com 2012-05-08 10:18:16 CDT --- I found a bug in the previous patch. As orig_height is an original screen height, in full-screen mode, it doesn't return a correct value for the scan_line member. I'll submit a new patch later.
(In reply to comment #10)
Is that related to bug 30184?
Probably yes. Polling EDID is partly a slow factor of the query. But it's a good idea to avoid getting information until display setting is changed.
Also note that ddraw7_GetScanLine() in ddraw is similar, it should probably call wined3d_swapchain_get_raster_status(), although some aspects of the ddraw7_GetScanLine() implementation are probably nicer.
Although I've not tested, ddraw7_GetScanLine() seems not to need a swap chain (= surface). Currently wined3d_swapchain_get_raster_status() requires swap chain, it's not easy to merge them.