mirror of
https://github.com/brl/mutter.git
synced 2025-02-15 21:04:10 +00:00
![Carlos Garnacho](/assets/img/avatar_default.png)
Going for the default GL renderer is known to trigger rendering artifacts using the NVidia proprietary driver. Since we don't have too many expectatives about frames being flashy (not to the point of mandating GL), resort to the cairo renderer in the mean time. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2976>
73 lines
1.8 KiB
C
73 lines
1.8 KiB
C
/*
|
|
* Copyright (C) 2022 Red Hat Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This program 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
|
|
* General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* Author: Carlos Garnacho <carlosg@gnome.org>
|
|
*/
|
|
|
|
#include "config.h"
|
|
|
|
#include "meta-window-tracker.h"
|
|
|
|
#include <gdk/x11/gdkx.h>
|
|
#include <glib-unix.h>
|
|
#include <X11/extensions/Xfixes.h>
|
|
|
|
static gboolean
|
|
on_sigterm (gpointer user_data)
|
|
{
|
|
exit (0);
|
|
|
|
return G_SOURCE_REMOVE;
|
|
}
|
|
|
|
int
|
|
main (int argc,
|
|
char *argv[])
|
|
{
|
|
g_autoptr (MetaWindowTracker) window_tracker = NULL;
|
|
GdkDisplay *display;
|
|
GMainLoop *loop;
|
|
Display *xdisplay;
|
|
|
|
g_setenv ("GSK_RENDERER", "cairo", TRUE);
|
|
|
|
/* We do know the desired GDK backend, don't let
|
|
* anyone tell us otherwise.
|
|
*/
|
|
g_unsetenv ("GDK_BACKEND");
|
|
|
|
gdk_set_allowed_backends ("x11");
|
|
|
|
g_set_prgname ("mutter-x11-frames");
|
|
|
|
gtk_init ();
|
|
|
|
display = gdk_display_get_default ();
|
|
|
|
xdisplay = gdk_x11_display_get_xdisplay (display);
|
|
XFixesSetClientDisconnectMode (xdisplay,
|
|
XFixesClientDisconnectFlagTerminate);
|
|
|
|
window_tracker = meta_window_tracker_new (display);
|
|
|
|
loop = g_main_loop_new (NULL, FALSE);
|
|
g_unix_signal_add (SIGTERM, on_sigterm, NULL);
|
|
g_main_loop_run (loop);
|
|
g_main_loop_unref (loop);
|
|
|
|
return 0;
|
|
}
|