My progress in porting Wine

I spend last days to creating Haiku native windowing intergation driver for Wine winehaiku.drv without using X11 or Xlib in any way. It is already quite usable and outperforms winex11.drv + Xlibe in many aspects.

Native Haiku Wine windowing intergation driver will also simplify Vulkan and DXVK integration a lot, no GLX stuff.

What works:

  1. Displaying window contents. Wine drawing engine is used, drawing result is displayed with BView::DrawBitmap().
  2. Mouse input (left, right, middle buttons, wheel).
  3. Keyboard input (VK_* codes translation, Haiku native keymap handling).
  4. Native Haiku window borders and window styles.
  5. Windows move, resize, show/hide.

What do not work:

  1. Focus contol.
  2. Window Z-order control.
  3. Wine - Haiku window position syncronization sometimes works wrong.
  4. Detecting screen size.

screenshot141

screenshot142

56 Likes