Commit Graph

28 Commits

Author SHA1 Message Date
Andrew Eikum 10035f1b97 winemac: Implement Vulkan driver on top of MoltenVK.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-13 17:20:43 +02:00
Ken Thomases 357017cd87 winemac: Implement WineMetalView class.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-13 17:20:43 +02:00
Ken Thomases 1aae516a49 winemac: Add resource file.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-17 22:56:39 +09:00
Ken Thomases 3beec95a09 winemac: Use CVDisplayLink to limit window redrawing to the display refresh rate.
Some Windows apps cause user32 to flush the window surface much faster than the
display refresh rate.  The Mac driver only marks its window as needing to be
redrawn and lets Cocoa decide how often to actually redraw.  Unfortunately,
Cocoa redraws each time through the run loop and, since the Mac driver uses a
run loop source to convey messages from background threads to the main thread,
it redraws after every batch of messages.

On some versions of OS X, this excessive drawing provokes synchronization with
the window server's buffer swaps, preventing the main thread from being
responsive.  Even when that doesn't happen, it's wasteful.

So, we set our windows' autodisplay property to false so that Cocoa never
displays windows itself.  Then, we arrange to call -displayIfNeeded once per
display refresh cycle using a CVDisplayLink.  We maintain one CVDisplayLink per
display (on demand), move windows among them as the windows change screens,
start them when they acquire their first window, and stop them when they have
none left.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-06 23:20:29 +09:00
Alexandre Julliard 5e7416e5c8 makefiles: Get rid of the MAKE_DLL_RULES variable. 2014-01-02 12:08:18 +01:00
Ken Thomases 192b8dbf9d winemac: Implement an IME that uses the OS X input methods.
Developed with Aric Stewart.
2013-04-22 12:37:50 +02:00
Alexandre Julliard 04ad06353d user32: Move the common parts of ScrollDC into user32 and the null driver. 2013-04-19 16:16:16 +02:00
C.W. Betts 95daa45dbc winemac: Implement getting and setting screen saver state on OS X. 2013-03-29 17:52:17 +01:00
Ken Thomases 9714e6ee63 winemac: Implement rudimentary support for system tray icons as Mac status items. 2013-03-25 14:02:56 +01:00
Ken Thomases 462721a115 winemac: Move create_cgimage_from_icon_bitmaps() into new module, image.c. 2013-03-25 14:01:01 +01:00
Ken Thomases 7993bd3d90 winemac: Implement support for drag-and-drop. 2013-03-14 12:03:32 +01:00
Ken Thomases 6b2b3e69f7 winemac: Implement CountClipboardFormats() with support for text formats. 2013-03-11 10:52:59 +01:00
Ken Thomases 3f3ee6393d winemac: Implement OpenGL support. 2013-03-06 12:56:12 +01:00
Ken Thomases c76f0beeab winemac: Fail gracefully and early when run from a non-GUI session. 2013-03-05 09:50:02 +01:00
Ken Thomases b78eee3172 winemac: Build a map from Mac virtual key codes to Win32 vkeys and scan codes based on Mac keyboard layout. 2013-02-05 11:06:02 +01:00
Ken Thomases 6efd198c52 winemac: Implement ScrollDC(). 2013-02-05 11:04:33 +01:00
Ken Thomases bd269786a5 winemac: Implement a MOUSE_BUTTON event for mouse clicks. 2013-01-28 14:02:45 +01:00
Ken Thomases 4e83d2fca0 winemac: Implement MsgWaitForMultipleObjectsEx and infrastructure for processing events. 2013-01-21 12:51:18 +01:00
Ken Thomases 3c995bb682 winemac: Add WineEventQueue class for conveying events from Cocoa to Wine threads. 2013-01-21 12:51:17 +01:00
Ken Thomases 7d6ebfa742 winemac: Implement window surface rendering. 2013-01-15 12:16:44 +01:00
Ken Thomases 8da2cb1698 winemac: Implement basic window functionality. 2013-01-09 17:39:38 +01:00
Ken Thomases 35319684d3 winemac: Convert main thread to Cocoa main loop on process attach. 2013-01-09 17:39:37 +01:00
Ken Thomases daf0fd75e6 winemac: Add a custom NSApplication subclass, WineApplication. 2013-01-09 17:39:37 +01:00
Ken Thomases bbb8c60c7e winemac: Implement CreateDesktopWindow(). 2013-01-08 12:50:20 +01:00
Ken Thomases 21c4fc3326 winemac.drv: Implement EnumDisplayMonitors. 2012-12-26 18:23:03 +01:00
Ken Thomases fd269e4dca winemac: Implement GetDeviceCaps(). 2012-12-21 12:08:38 +01:00
Ken Thomases 59e339faac winemac: Implement minimal Create[Compatible]DC() and DeleteDC(). 2012-12-17 20:31:15 +01:00
Ken Thomases 35033025aa winequartz.drv: Rename to winemac.drv ("the Mac driver"). 2012-12-17 20:31:14 +01:00