Мне трудно отличить X11 от Wayland.
Код: Выделить всё
#include
#if defined(__linux__)
#define OS_LINUX
#if defined(WAYLAND_DISPLAY)
#define WINDOW_SERVER_WAYLAND
#elif defined(X11)
#define WINDOW_SERVER_X11
#else
#define WINDOW_SERVER_UNKNOWN
#endif
#endif
void DetectPlatform() {
#if defined(OS_LINUX)
#if defined(WINDOW_SERVER_WAYLAND)
printf("Running linux with window server wayland\n");
#elif defined(WINDOW_SERVER_X11)
printf("Running linux with window server x11\n");
#else
printf("ERROR: incompatible window server\n");
#endif
#endif
}
Затем я попробовал #elif определено(DISPLAY), согласно верхнему ответу здесь, это не помогло.
Что мне следует изменить, чтобы гарантировать, что он обнаруживает и X11, и Wayland?
Подробнее здесь: https://stackoverflow.com/questions/793 ... mpile-time