Module: wine
Branch: master
Commit: 697b58f406cecd98539452239018a218943ccabb
URL: https://gitlab.winehq.org/wine/wine/-/commit/697b58f406cecd98539452239018a2…
Author: Alexandros Frantzis <alexandros.frantzis(a)collabora.com>
Date: Tue Mar 7 13:21:38 2023 +0200
winewayland.drv: Report basic monitor information.
Whenever the Wayland output display state changes (including during
initialization), update the monitor information on the Wine side to
reflect these changes.
For now all monitors are placed at 0,0 in the monitor space, and
only the current mode is reported. These deficiencies will be addressed
in upcoming commits.
We currently support a single GPU, and a single monitor for each
adapter.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis(a)collabora.com>
---
dlls/winewayland.drv/Makefile.in | 4 +-
dlls/winewayland.drv/display.c | 155 +++++++++++++++++++++++++++++++++
dlls/winewayland.drv/wayland.c | 94 +++++++++++++++++++-
dlls/winewayland.drv/wayland_output.c | 134 ++++++++++++++++++++++++++++
dlls/winewayland.drv/waylanddrv.h | 47 ++++++++++
dlls/winewayland.drv/waylanddrv_main.c | 15 +++-
6 files changed, 446 insertions(+), 3 deletions(-)
Module: wine
Branch: master
Commit: 243c19098ee2e5c87a6bdbebdbb4c5cf598a9de2
URL: https://gitlab.winehq.org/wine/wine/-/commit/243c19098ee2e5c87a6bdbebdbb4c5…
Author: Alexandros Frantzis <alexandros.frantzis(a)collabora.com>
Date: Tue Feb 28 19:22:54 2023 +0200
win32u: Allow drivers to set the null user driver.
Allow passing NULL as the user driver to __wine_set_user_driver(),
to set the internal null user driver. This is useful for drivers
that may need to tentatively set their own user driver during setup
and reset it on failure.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis(a)collabora.com>
---
dlls/win32u/driver.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c
index eb736de272d..5bae77da5f4 100644
--- a/dlls/win32u/driver.c
+++ b/dlls/win32u/driver.c
@@ -1241,7 +1241,7 @@ void __wine_set_user_driver( const struct user_driver_funcs *funcs, UINT version
}
driver = malloc( sizeof(*driver) );
- *driver = *funcs;
+ *driver = funcs ? *funcs : null_user_driver;
#define SET_USER_FUNC(name) \
do { if (!driver->p##name) driver->p##name = nulldrv_##name; } while(0)
Module: wine
Branch: master
Commit: 5ef250c0d12c96b35e0889a0864c3e2516ebc296
URL: https://gitlab.winehq.org/wine/wine/-/commit/5ef250c0d12c96b35e0889a0864c3e…
Author: Alexandros Frantzis <alexandros.frantzis(a)collabora.com>
Date: Tue Jun 7 12:17:12 2022 +0300
winewayland.drv: Add initial unixlib stub.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis(a)collabora.com>
---
dlls/winewayland.drv/Makefile.in | 4 ++-
dlls/winewayland.drv/dllmain.c | 4 +++
dlls/winewayland.drv/unixlib.h | 32 ++++++++++++++++++++
dlls/winewayland.drv/waylanddrv.h | 30 +++++++++++++++++++
dlls/winewayland.drv/waylanddrv_dll.h | 4 +++
dlls/winewayland.drv/waylanddrv_main.c | 53 ++++++++++++++++++++++++++++++++++
6 files changed, 126 insertions(+), 1 deletion(-)
diff --git a/dlls/winewayland.drv/Makefile.in b/dlls/winewayland.drv/Makefile.in
index f5b39ad0af9..292be0cbd3e 100644
--- a/dlls/winewayland.drv/Makefile.in
+++ b/dlls/winewayland.drv/Makefile.in
@@ -1,6 +1,8 @@
MODULE = winewayland.drv
+UNIXLIB = winewayland.so
C_SRCS = \
- dllmain.c
+ dllmain.c \
+ waylanddrv_main.c
RC_SRCS = version.rc
diff --git a/dlls/winewayland.drv/dllmain.c b/dlls/winewayland.drv/dllmain.c
index 7ab3341e61d..89d981a4314 100644
--- a/dlls/winewayland.drv/dllmain.c
+++ b/dlls/winewayland.drv/dllmain.c
@@ -25,6 +25,10 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
if (reason != DLL_PROCESS_ATTACH) return TRUE;
DisableThreadLibraryCalls(instance);
+ if (__wine_init_unix_call()) return FALSE;
+
+ if (WAYLANDDRV_UNIX_CALL(init, NULL))
+ return FALSE;
return TRUE;
}
diff --git a/dlls/winewayland.drv/unixlib.h b/dlls/winewayland.drv/unixlib.h
new file mode 100644
index 00000000000..427837523e3
--- /dev/null
+++ b/dlls/winewayland.drv/unixlib.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2022 Alexandros Frantzis for Collabora Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_WAYLANDDRV_UNIXLIB_H
+#define __WINE_WAYLANDDRV_UNIXLIB_H
+
+#include <stdarg.h>
+#include "winternl.h"
+#include "wine/unixlib.h"
+
+enum waylanddrv_unix_func
+{
+ waylanddrv_unix_func_init,
+ waylanddrv_unix_func_count,
+};
+
+#endif /* __WINE_WAYLANDDRV_UNIXLIB_H */
diff --git a/dlls/winewayland.drv/waylanddrv.h b/dlls/winewayland.drv/waylanddrv.h
new file mode 100644
index 00000000000..ec656ea87fb
--- /dev/null
+++ b/dlls/winewayland.drv/waylanddrv.h
@@ -0,0 +1,30 @@
+/*
+ * Wayland driver
+ *
+ * Copyright 2020 Alexandros Frantzis for Collabora Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_WAYLANDDRV_H
+#define __WINE_WAYLANDDRV_H
+
+#ifndef __WINE_CONFIG_H
+# error You must include config.h to use this header
+#endif
+
+#include "unixlib.h"
+
+#endif /* __WINE_WAYLANDDRV_H */
diff --git a/dlls/winewayland.drv/waylanddrv_dll.h b/dlls/winewayland.drv/waylanddrv_dll.h
index 556898d44b2..123b6cd5a61 100644
--- a/dlls/winewayland.drv/waylanddrv_dll.h
+++ b/dlls/winewayland.drv/waylanddrv_dll.h
@@ -25,4 +25,8 @@
#include "windef.h"
#include "winbase.h"
+#include "unixlib.h"
+
+#define WAYLANDDRV_UNIX_CALL(func, params) WINE_UNIX_CALL(waylanddrv_unix_func_ ## func, params)
+
#endif /* __WINE_WAYLANDDRV_DLL_H */
diff --git a/dlls/winewayland.drv/waylanddrv_main.c b/dlls/winewayland.drv/waylanddrv_main.c
new file mode 100644
index 00000000000..396beac5828
--- /dev/null
+++ b/dlls/winewayland.drv/waylanddrv_main.c
@@ -0,0 +1,53 @@
+/*
+ * WAYLANDDRV initialization code
+ *
+ * Copyright 2020 Alexandre Frantzis for Collabora Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#if 0
+#pragma makedep unix
+#endif
+
+#include "config.h"
+
+#include "ntstatus.h"
+#define WIN32_NO_STATUS
+
+#include "waylanddrv.h"
+
+static NTSTATUS waylanddrv_unix_init(void *arg)
+{
+ return 0;
+}
+
+const unixlib_entry_t __wine_unix_call_funcs[] =
+{
+ waylanddrv_unix_init,
+};
+
+C_ASSERT(ARRAYSIZE(__wine_unix_call_funcs) == waylanddrv_unix_func_count);
+
+#ifdef _WIN64
+
+const unixlib_entry_t __wine_unix_call_wow64_funcs[] =
+{
+ waylanddrv_unix_init,
+};
+
+C_ASSERT(ARRAYSIZE(__wine_unix_call_wow64_funcs) == waylanddrv_unix_func_count);
+
+#endif /* _WIN64 */
Module: wine
Branch: master
Commit: 2a79056e9a790d2a0b999bccc61cf886be8e8c00
URL: https://gitlab.winehq.org/wine/wine/-/commit/2a79056e9a790d2a0b999bccc61cf8…
Author: Alexandros Frantzis <alexandros.frantzis(a)collabora.com>
Date: Tue Aug 31 15:48:36 2021 +0300
winewayland.drv: Add initial driver stub.
Add the initial driver stub for the Wayland driver and build it
by default.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis(a)collabora.com>
---
configure | 2 ++
configure.ac | 1 +
dlls/winewayland.drv/Makefile.in | 6 ++++++
dlls/winewayland.drv/dllmain.c | 30 ++++++++++++++++++++++++++++++
dlls/winewayland.drv/version.rc | 22 ++++++++++++++++++++++
dlls/winewayland.drv/waylanddrv_dll.h | 28 ++++++++++++++++++++++++++++
dlls/winewayland.drv/winewayland.drv.spec | 0
7 files changed, 89 insertions(+)
diff --git a/configure b/configure
index 7618e8b4b15..210409724f1 100755
--- a/configure
+++ b/configure
@@ -1473,6 +1473,7 @@ enable_wineps_drv
enable_winepulse_drv
enable_wineusb_sys
enable_winevulkan
+enable_winewayland_drv
enable_winex11_drv
enable_winexinput_sys
enable_wing32
@@ -21733,6 +21734,7 @@ wine_fn_config_makefile dlls/wineps16.drv16 enable_win16
wine_fn_config_makefile dlls/winepulse.drv enable_winepulse_drv
wine_fn_config_makefile dlls/wineusb.sys enable_wineusb_sys
wine_fn_config_makefile dlls/winevulkan enable_winevulkan
+wine_fn_config_makefile dlls/winewayland.drv enable_winewayland_drv
wine_fn_config_makefile dlls/winex11.drv enable_winex11_drv
wine_fn_config_makefile dlls/winexinput.sys enable_winexinput_sys
wine_fn_config_makefile dlls/wing.dll16 enable_win16
diff --git a/configure.ac b/configure.ac
index 35af177b013..da9e4c22891 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3140,6 +3140,7 @@ WINE_CONFIG_MAKEFILE(dlls/wineps16.drv16,enable_win16)
WINE_CONFIG_MAKEFILE(dlls/winepulse.drv)
WINE_CONFIG_MAKEFILE(dlls/wineusb.sys)
WINE_CONFIG_MAKEFILE(dlls/winevulkan)
+WINE_CONFIG_MAKEFILE(dlls/winewayland.drv)
WINE_CONFIG_MAKEFILE(dlls/winex11.drv)
WINE_CONFIG_MAKEFILE(dlls/winexinput.sys)
WINE_CONFIG_MAKEFILE(dlls/wing.dll16,enable_win16)
diff --git a/dlls/winewayland.drv/Makefile.in b/dlls/winewayland.drv/Makefile.in
new file mode 100644
index 00000000000..f5b39ad0af9
--- /dev/null
+++ b/dlls/winewayland.drv/Makefile.in
@@ -0,0 +1,6 @@
+MODULE = winewayland.drv
+
+C_SRCS = \
+ dllmain.c
+
+RC_SRCS = version.rc
diff --git a/dlls/winewayland.drv/dllmain.c b/dlls/winewayland.drv/dllmain.c
new file mode 100644
index 00000000000..7ab3341e61d
--- /dev/null
+++ b/dlls/winewayland.drv/dllmain.c
@@ -0,0 +1,30 @@
+/*
+ * winewayland.drv entry points
+ *
+ * Copyright 2022 Alexandros Frantzis for Collabora Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "waylanddrv_dll.h"
+
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
+{
+ if (reason != DLL_PROCESS_ATTACH) return TRUE;
+
+ DisableThreadLibraryCalls(instance);
+
+ return TRUE;
+}
diff --git a/dlls/winewayland.drv/version.rc b/dlls/winewayland.drv/version.rc
new file mode 100644
index 00000000000..2d99c24f99c
--- /dev/null
+++ b/dlls/winewayland.drv/version.rc
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2020 Alexandros Frantzis for Collabora Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#define WINE_FILEDESCRIPTION_STR "Wine Wayland driver"
+#define WINE_FILENAME_STR "winewayland.drv"
+
+#include "wine/wine_common_ver.rc"
diff --git a/dlls/winewayland.drv/waylanddrv_dll.h b/dlls/winewayland.drv/waylanddrv_dll.h
new file mode 100644
index 00000000000..556898d44b2
--- /dev/null
+++ b/dlls/winewayland.drv/waylanddrv_dll.h
@@ -0,0 +1,28 @@
+/*
+ * Wayland driver DLL definitions
+ *
+ * Copyright 2022 Alexandros Frantzis for Collabora Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_WAYLANDDRV_DLL_H
+#define __WINE_WAYLANDDRV_DLL_H
+
+#include <stdarg.h>
+#include "windef.h"
+#include "winbase.h"
+
+#endif /* __WINE_WAYLANDDRV_DLL_H */
diff --git a/dlls/winewayland.drv/winewayland.drv.spec b/dlls/winewayland.drv/winewayland.drv.spec
new file mode 100644
index 00000000000..e69de29bb2d