Fix wayland build - make x11 build optional.
This commit is contained in:
parent
7da1d2d539
commit
bb222fd84d
12 changed files with 102 additions and 32 deletions
|
@ -1,12 +1,18 @@
|
||||||
set(WAYLAND_FOUND FALSE)
|
set(WAYLAND_FOUND FALSE)
|
||||||
|
|
||||||
find_path(_WAYLAND_CLIENT_INCLUDE_DIR NAMES wayland-client.h)
|
find_path(_WAYLAND_CLIENT_INCLUDE_DIR NAMES wayland-client.h)
|
||||||
find_path(_WAYLAND_EXTENSIONS_INCLUDE_DIR NAMES xdg-shell-client-protocol.h HINTS ENV WAYLAND_EXTENSION_DIR)
|
|
||||||
find_library(_WAYLAND_CLIENT_LIBRARY NAMES wayland-client libwayland-client)
|
find_library(_WAYLAND_CLIENT_LIBRARY NAMES wayland-client libwayland-client)
|
||||||
|
find_program(_WAYLAND_SCANNER wayland-scanner)
|
||||||
|
find_file(_WAYLAND_XDG_SHELL_PROTO xdg-shell.xml HINTS /usr/share/wayland-protocols/stable/xdg-shell)
|
||||||
|
|
||||||
if (_WAYLAND_CLIENT_INCLUDE_DIR AND _WAYLAND_EXTENSIONS_INCLUDE_DIR AND _WAYLAND_CLIENT_LIBRARY)
|
if (_WAYLAND_CLIENT_INCLUDE_DIR AND _WAYLAND_SCANNER AND _WAYLAND_CLIENT_LIBRARY)
|
||||||
set(WAYLAND_FOUND TRUE)
|
set(WAYLAND_FOUND TRUE)
|
||||||
set(WAYLAND_INCLUDE_DIRS ${_WAYLAND_EXTENSIONS_INCLUDE_DIR})
|
set(WAYLAND_LIBRARIES ${_WAYLAND_CLIENT_LIBRARY} wayland-egl)
|
||||||
set(WAYLAND_XDG_SOURCE ${_WAYLAND_EXTENSIONS_INCLUDE_DIR}/xdg-shell-protocol.cpp)
|
|
||||||
set(WAYLAND_LIBRARIES ${WAYLAND_CLIENT_LIBRARY} wayland-egl)
|
add_custom_command(OUTPUT xdg-shell-client-procotol.h
|
||||||
|
xdg-shell-protocol.c
|
||||||
|
COMMAND ${_WAYLAND_SCANNER} client-header < ${_WAYLAND_XDG_SHELL_PROTO} > xdg-shell-client-protocol.h
|
||||||
|
COMMAND ${_WAYLAND_SCANNER} private-code < ${_WAYLAND_XDG_SHELL_PROTO} > xdg-shell-protocol.c
|
||||||
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
||||||
|
|
||||||
endif()
|
endif()
|
|
@ -5,8 +5,9 @@ set (platform_LIBS "")
|
||||||
|
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
message(STATUS "Checking dependencies for module: window")
|
message(STATUS "Checking dependencies for module: window")
|
||||||
#Find_package(X11 QUIET)
|
Find_package(X11 QUIET)
|
||||||
if(X11_FOUND)
|
option(NTK_WITH_X11 "Build with X11 support" OFF)
|
||||||
|
if(X11_FOUND AND ${NTK_WITH_X11})
|
||||||
list(APPEND platform_INCLUDES
|
list(APPEND platform_INCLUDES
|
||||||
ui_interfaces/x11/XcbInterface.cpp
|
ui_interfaces/x11/XcbInterface.cpp
|
||||||
ui_interfaces/x11/XcbEventInterface.cpp
|
ui_interfaces/x11/XcbEventInterface.cpp
|
||||||
|
@ -19,7 +20,13 @@ if(UNIX)
|
||||||
ui_interfaces/x11/XcbExtensionInterface.cpp
|
ui_interfaces/x11/XcbExtensionInterface.cpp
|
||||||
ui_interfaces/x11/XcbGlWindowInterface.cpp
|
ui_interfaces/x11/XcbGlWindowInterface.cpp
|
||||||
)
|
)
|
||||||
list(APPEND platform_LIBS ${X11_LIBRARIES} ${X11_xcb_LIB} ${X11_X11_xcb_LIB} ${X11_xkbcommon_LIB} ${X11_xkbcommon_X11_LIB} libxcb-image.so)
|
list(APPEND platform_LIBS
|
||||||
|
${X11_LIBRARIES}
|
||||||
|
${X11_xcb_LIB}
|
||||||
|
${X11_X11_xcb_LIB}
|
||||||
|
${X11_xkbcommon_LIB}
|
||||||
|
#${X11_xkbcommon_X11_LIB}
|
||||||
|
libxcb-image.so)
|
||||||
list(APPEND X11_INCLUDE_DIRS ${X11_xkbcommon_INCLUDE_PATH})
|
list(APPEND X11_INCLUDE_DIRS ${X11_xkbcommon_INCLUDE_PATH})
|
||||||
list(APPEND DEFINES "HAS_X11")
|
list(APPEND DEFINES "HAS_X11")
|
||||||
else()
|
else()
|
||||||
|
@ -37,16 +44,17 @@ if(UNIX)
|
||||||
ui_interfaces/wayland/WaylandKeyboard.cpp
|
ui_interfaces/wayland/WaylandKeyboard.cpp
|
||||||
ui_interfaces/wayland/WaylandEglInterface.cpp
|
ui_interfaces/wayland/WaylandEglInterface.cpp
|
||||||
ui_interfaces/wayland/WaylandEglWindowInterface.cpp
|
ui_interfaces/wayland/WaylandEglWindowInterface.cpp
|
||||||
${WAYLAND_XDG_SOURCE}
|
${CMAKE_BINARY_DIR}/xdg-shell-protocol.c
|
||||||
)
|
)
|
||||||
list(APPEND platform_LIBS OpenGL::EGL)
|
list(APPEND platform_LIBS OpenGL::EGL)
|
||||||
list(APPEND DEFINES "HAS_WAYLAND")
|
list(APPEND DEFINES "HAS_WAYLAND")
|
||||||
|
|
||||||
set(OpenGL_GL_PREFERENCE "GLVND")
|
set(OpenGL_GL_PREFERENCE "GLVND")
|
||||||
find_package(OpenGL QUIET)
|
find_package(OpenGL QUIET)
|
||||||
if (OpenGL_FOUND)
|
#if (OpenGL_FOUND)
|
||||||
list(APPEND platform_LIBS ${WAYLAND_LIBRARIES})
|
message(STATUS "ADDING WAYLAND LIBS: " ${WAYLAND_LIBRARIES})
|
||||||
endif()
|
list(APPEND platform_LIBS ${WAYLAND_LIBRARIES} ${X11_xkbcommon_LIB})
|
||||||
|
#endif()
|
||||||
else()
|
else()
|
||||||
Message(STATUS "Wayland not found - skipping support")
|
Message(STATUS "Wayland not found - skipping support")
|
||||||
endif()
|
endif()
|
||||||
|
@ -98,6 +106,7 @@ target_include_directories(windows PUBLIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/ui_interfaces/wayland
|
${CMAKE_CURRENT_SOURCE_DIR}/ui_interfaces/wayland
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/ui_interfaces/win32
|
${CMAKE_CURRENT_SOURCE_DIR}/ui_interfaces/win32
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/ui_interfaces/win32/directx
|
${CMAKE_CURRENT_SOURCE_DIR}/ui_interfaces/win32/directx
|
||||||
|
${CMAKE_BINARY_DIR}
|
||||||
${WAYLAND_INCLUDE_DIRS}
|
${WAYLAND_INCLUDE_DIRS}
|
||||||
${X11_INCLUDE_DIRS}
|
${X11_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
|
|
|
@ -44,7 +44,7 @@ void WaylandBuffer::setUpPool(int size, int width, int height, int stride)
|
||||||
|
|
||||||
auto pool = wl_shm_create_pool(mWlSharedMemory, mSharedMemory->getFileDescriptor(), size);
|
auto pool = wl_shm_create_pool(mWlSharedMemory, mSharedMemory->getFileDescriptor(), size);
|
||||||
|
|
||||||
int index = 0;
|
// int index = 0;
|
||||||
// int offset = height * stride * index; // Two buffers, offset to starting point of second
|
// int offset = height * stride * index; // Two buffers, offset to starting point of second
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
|
|
||||||
|
@ -60,6 +60,7 @@ void WaylandBuffer::tearDownPool(int size)
|
||||||
|
|
||||||
auto wl_buffer_release = [](void *data, struct wl_buffer *wl_buffer)
|
auto wl_buffer_release = [](void *data, struct wl_buffer *wl_buffer)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
wl_buffer_destroy(wl_buffer);
|
wl_buffer_destroy(wl_buffer);
|
||||||
};
|
};
|
||||||
mBufferListener.release = wl_buffer_release;
|
mBufferListener.release = wl_buffer_release;
|
||||||
|
|
|
@ -41,11 +41,13 @@ void WaylandInterface::registryHandleGlobalEvent(void *data, struct wl_registry
|
||||||
|
|
||||||
void WaylandInterface::registryHandleGlobalRemoveEvent(void *data, struct wl_registry *registry, uint32_t name)
|
void WaylandInterface::registryHandleGlobalRemoveEvent(void *data, struct wl_registry *registry, uint32_t name)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
|
(void)registry;
|
||||||
|
(void)name;
|
||||||
}
|
}
|
||||||
|
|
||||||
WaylandInterface::WaylandInterface(DesktopManager* desktopManager, std::unique_ptr<FontsManager> fontsManager, bool useHardware)
|
WaylandInterface::WaylandInterface(DesktopManager* desktopManager, bool useHardware)
|
||||||
: AbstractUIInterface(desktopManager, std::move(fontsManager), useHardware),
|
: AbstractUIInterface(desktopManager, useHardware),
|
||||||
mBuffer(std::make_shared<WaylandBuffer>())
|
mBuffer(std::make_shared<WaylandBuffer>())
|
||||||
{
|
{
|
||||||
mRegistryListener.global = registryHandleGlobalEvent;
|
mRegistryListener.global = registryHandleGlobalEvent;
|
||||||
|
@ -108,6 +110,7 @@ void WaylandInterface::setXdgBase(xdg_wm_base* xdg_base)
|
||||||
{
|
{
|
||||||
auto thisClass = static_cast<WaylandInterface*>(data);
|
auto thisClass = static_cast<WaylandInterface*>(data);
|
||||||
thisClass->doXdgPong(serial);
|
thisClass->doXdgPong(serial);
|
||||||
|
(void)xdg_wm_base;
|
||||||
};
|
};
|
||||||
mXdgBaseListener.ping = xdg_ping_handler;
|
mXdgBaseListener.ping = xdg_ping_handler;
|
||||||
xdg_wm_base_add_listener(mXdgBase, &mXdgBaseListener, this);
|
xdg_wm_base_add_listener(mXdgBase, &mXdgBaseListener, this);
|
||||||
|
@ -130,7 +133,7 @@ void WaylandInterface::doXdgPong(uint32_t serial)
|
||||||
|
|
||||||
void WaylandInterface::addWindow(mt::Window* window)
|
void WaylandInterface::addWindow(mt::Window* window)
|
||||||
{
|
{
|
||||||
WaylandSurface::add(window, mCompositor, mXdgBase, mBuffer, mFontsManager.get(), mEglInterface.get());
|
WaylandSurface::add(window, mCompositor, mXdgBase, mBuffer, mDesktopManager->getFontsManager(), mEglInterface.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandInterface::showWindow(mt::Window* window)
|
void WaylandInterface::showWindow(mt::Window* window)
|
||||||
|
|
|
@ -18,7 +18,7 @@ class WaylandInterface : public AbstractUIInterface
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
WaylandInterface(DesktopManager* desktopManager, std::unique_ptr<FontsManager> fontsManager, bool useHardware = true);
|
WaylandInterface(DesktopManager* desktopManager, bool useHardware = true);
|
||||||
|
|
||||||
~WaylandInterface();
|
~WaylandInterface();
|
||||||
|
|
||||||
|
|
|
@ -13,28 +13,42 @@ void WaylandKeyboard::keyboardKeymapEvent(void *data, struct wl_keyboard *wl_key
|
||||||
|
|
||||||
void WaylandKeyboard::keyboardEnterEvent(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial, struct wl_surface *surface, struct wl_array *keys)
|
void WaylandKeyboard::keyboardEnterEvent(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial, struct wl_surface *surface, struct wl_array *keys)
|
||||||
{
|
{
|
||||||
|
(void)wl_keyboard;
|
||||||
|
(void)serial;
|
||||||
|
(void)surface;
|
||||||
auto thisClass = static_cast<WaylandKeyboard*>(data);
|
auto thisClass = static_cast<WaylandKeyboard*>(data);
|
||||||
thisClass->onEnterEvent(keys);
|
thisClass->onEnterEvent(keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandKeyboard::keyboardPressedEvent(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial, uint32_t time, uint32_t key, uint32_t state)
|
void WaylandKeyboard::keyboardPressedEvent(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial, uint32_t time, uint32_t key, uint32_t state)
|
||||||
{
|
{
|
||||||
|
(void)wl_keyboard;
|
||||||
|
(void)serial;
|
||||||
|
(void)time;
|
||||||
auto thisClass = static_cast<WaylandKeyboard*>(data);
|
auto thisClass = static_cast<WaylandKeyboard*>(data);
|
||||||
thisClass->onPressedEvent(key, state);
|
thisClass->onPressedEvent(key, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wl_keyboard_leave(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial, struct wl_surface *surface)
|
static void wl_keyboard_leave(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial, struct wl_surface *surface)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
|
(void)wl_keyboard;
|
||||||
|
(void)serial;
|
||||||
|
(void)surface;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wl_keyboard_repeat_info(void *data, struct wl_keyboard *wl_keyboard, int32_t rate, int32_t delay)
|
static void wl_keyboard_repeat_info(void *data, struct wl_keyboard *wl_keyboard, int32_t rate, int32_t delay)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
|
(void)wl_keyboard;
|
||||||
|
(void)rate;
|
||||||
|
(void)delay;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandKeyboard::keyboardModifierEvent(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial, uint32_t mods_depressed, uint32_t mods_latched, uint32_t mods_locked, uint32_t group)
|
void WaylandKeyboard::keyboardModifierEvent(void *data, struct wl_keyboard *wl_keyboard, uint32_t serial, uint32_t mods_depressed, uint32_t mods_latched, uint32_t mods_locked, uint32_t group)
|
||||||
{
|
{
|
||||||
|
(void)wl_keyboard;
|
||||||
|
(void)serial;
|
||||||
auto thisClass = static_cast<WaylandKeyboard*>(data);
|
auto thisClass = static_cast<WaylandKeyboard*>(data);
|
||||||
thisClass->onKeyboardModifier(mods_depressed, mods_latched, mods_locked, group);
|
thisClass->onKeyboardModifier(mods_depressed, mods_latched, mods_locked, group);
|
||||||
}
|
}
|
||||||
|
@ -46,7 +60,9 @@ void WaylandKeyboard::onKeyboardModifier(uint32_t mods_depressed, uint32_t mods_
|
||||||
|
|
||||||
void WaylandKeyboard::onEnterEvent(struct wl_array *keys)
|
void WaylandKeyboard::onEnterEvent(struct wl_array *keys)
|
||||||
{
|
{
|
||||||
void* key;
|
(void)keys;
|
||||||
|
/*
|
||||||
|
char* key;
|
||||||
wl_array_for_each(key, keys)
|
wl_array_for_each(key, keys)
|
||||||
{
|
{
|
||||||
uint32_t* key_type = static_cast<uint32_t*>(key);
|
uint32_t* key_type = static_cast<uint32_t*>(key);
|
||||||
|
@ -58,15 +74,17 @@ void WaylandKeyboard::onEnterEvent(struct wl_array *keys)
|
||||||
xkb_state_key_get_utf8(mXkbState, *key_type + 8, buf, sizeof(buf));
|
xkb_state_key_get_utf8(mXkbState, *key_type + 8, buf, sizeof(buf));
|
||||||
//fprintf(stderr, "utf8: '%s'\n", buf);
|
//fprintf(stderr, "utf8: '%s'\n", buf);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandKeyboard::onPressedEvent(uint32_t key, uint32_t state)
|
void WaylandKeyboard::onPressedEvent(uint32_t key, uint32_t state)
|
||||||
{
|
{
|
||||||
char buf[128];
|
char buf[128];
|
||||||
|
(void)state;
|
||||||
uint32_t keycode = key + 8;
|
uint32_t keycode = key + 8;
|
||||||
xkb_keysym_t sym = xkb_state_key_get_one_sym(mXkbState, keycode);
|
xkb_keysym_t sym = xkb_state_key_get_one_sym(mXkbState, keycode);
|
||||||
xkb_keysym_get_name(sym, buf, sizeof(buf));
|
xkb_keysym_get_name(sym, buf, sizeof(buf));
|
||||||
const char *action = state == WL_KEYBOARD_KEY_STATE_PRESSED ? "press" : "release";
|
//const char *action = state == WL_KEYBOARD_KEY_STATE_PRESSED ? "press" : "release";
|
||||||
//fprintf(stderr, "key %s: sym: %-12s (%d), ", action, buf, sym);
|
//fprintf(stderr, "key %s: sym: %-12s (%d), ", action, buf, sym);
|
||||||
xkb_state_key_get_utf8(mXkbState, keycode, buf, sizeof(buf));
|
xkb_state_key_get_utf8(mXkbState, keycode, buf, sizeof(buf));
|
||||||
//fprintf(stderr, "utf8: '%s'\n", buf);
|
//fprintf(stderr, "utf8: '%s'\n", buf);
|
||||||
|
@ -74,6 +92,8 @@ void WaylandKeyboard::onPressedEvent(uint32_t key, uint32_t state)
|
||||||
|
|
||||||
void WaylandKeyboard::onKeymapEvent(struct wl_keyboard *wl_keyboard, uint32_t format, int32_t fd, uint32_t size)
|
void WaylandKeyboard::onKeymapEvent(struct wl_keyboard *wl_keyboard, uint32_t format, int32_t fd, uint32_t size)
|
||||||
{
|
{
|
||||||
|
(void)wl_keyboard;
|
||||||
|
(void)format;
|
||||||
// assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1);
|
// assert(format == WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1);
|
||||||
char* map_shm = static_cast<char*>(mmap(nullptr, size, PROT_READ, MAP_SHARED, fd, 0));
|
char* map_shm = static_cast<char*>(mmap(nullptr, size, PROT_READ, MAP_SHARED, fd, 0));
|
||||||
// assert(map_shm != MAP_FAILED);
|
// assert(map_shm != MAP_FAILED);
|
||||||
|
|
|
@ -13,7 +13,7 @@ public:
|
||||||
|
|
||||||
~WaylandKeyboard();
|
~WaylandKeyboard();
|
||||||
|
|
||||||
std::string getKeyString(KeyCode keyCode) override { return "";};
|
std::string getKeyString(KeyCode keyCode) override { (void)keyCode; return "";};
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void keyboardKeymapEvent(void *data, struct wl_keyboard *wl_keyboard, uint32_t format, int32_t fd, uint32_t size);
|
static void keyboardKeymapEvent(void *data, struct wl_keyboard *wl_keyboard, uint32_t format, int32_t fd, uint32_t size);
|
||||||
|
|
|
@ -4,22 +4,34 @@
|
||||||
|
|
||||||
static void wl_pointer_axis(void *data, struct wl_pointer *wl_pointer, uint32_t time, uint32_t axis, wl_fixed_t value)
|
static void wl_pointer_axis(void *data, struct wl_pointer *wl_pointer, uint32_t time, uint32_t axis, wl_fixed_t value)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
|
(void)wl_pointer;
|
||||||
|
(void)time;
|
||||||
|
(void)axis;
|
||||||
|
(void)value;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wl_pointer_axis_source(void *data, struct wl_pointer *wl_pointer, uint32_t axis_source)
|
static void wl_pointer_axis_source(void *data, struct wl_pointer *wl_pointer, uint32_t axis_source)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
|
(void)wl_pointer;
|
||||||
|
(void)axis_source;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wl_pointer_axis_stop(void *data, struct wl_pointer *wl_pointer, uint32_t time, uint32_t axis)
|
static void wl_pointer_axis_stop(void *data, struct wl_pointer *wl_pointer, uint32_t time, uint32_t axis)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
|
(void)wl_pointer;
|
||||||
|
(void)time;
|
||||||
|
(void)axis;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void wl_pointer_axis_discrete(void *data, struct wl_pointer *wl_pointer, uint32_t axis, int32_t discrete)
|
static void wl_pointer_axis_discrete(void *data, struct wl_pointer *wl_pointer, uint32_t axis, int32_t discrete)
|
||||||
{
|
{
|
||||||
|
(void)data;
|
||||||
|
(void)wl_pointer;
|
||||||
|
(void)axis;
|
||||||
|
(void)discrete;
|
||||||
}
|
}
|
||||||
|
|
||||||
WaylandPointerInterface::~WaylandPointerInterface()
|
WaylandPointerInterface::~WaylandPointerInterface()
|
||||||
|
@ -31,30 +43,36 @@ void WaylandPointerInterface::pointerFrameEvent(void *data, struct wl_pointer *w
|
||||||
{
|
{
|
||||||
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
||||||
thisClass->onPointerFrame();
|
thisClass->onPointerFrame();
|
||||||
|
(void)wl_pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandPointerInterface::pointerEnterEvent(void *data, struct wl_pointer *wl_pointer, uint32_t serial, struct wl_surface *surface, wl_fixed_t surface_x, wl_fixed_t surface_y)
|
void WaylandPointerInterface::pointerEnterEvent(void *data, struct wl_pointer *wl_pointer, uint32_t serial, struct wl_surface *surface, wl_fixed_t surface_x, wl_fixed_t surface_y)
|
||||||
{
|
{
|
||||||
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
||||||
thisClass->onPointerEnter(serial, surface, surface_x, surface_y);
|
thisClass->onPointerEnter(serial, surface, surface_x, surface_y);
|
||||||
|
(void)wl_pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandPointerInterface::pointerLeaveEvent(void *data, struct wl_pointer *wl_pointer, uint32_t serial, struct wl_surface *surface)
|
void WaylandPointerInterface::pointerLeaveEvent(void *data, struct wl_pointer *wl_pointer, uint32_t serial, struct wl_surface *surface)
|
||||||
{
|
{
|
||||||
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
||||||
thisClass->onPointerLeave(serial);
|
thisClass->onPointerLeave(serial);
|
||||||
|
(void)wl_pointer;
|
||||||
|
(void)surface;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandPointerInterface::pointerMotionEvent(void *data, struct wl_pointer *wl_pointer, uint32_t time, wl_fixed_t surface_x, wl_fixed_t surface_y)
|
void WaylandPointerInterface::pointerMotionEvent(void *data, struct wl_pointer *wl_pointer, uint32_t time, wl_fixed_t surface_x, wl_fixed_t surface_y)
|
||||||
{
|
{
|
||||||
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
||||||
thisClass->onPointerMotion(time, surface_x, surface_y);
|
thisClass->onPointerMotion(time, surface_x, surface_y);
|
||||||
|
(void)wl_pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandPointerInterface::pointerButtonEvent(void *data, struct wl_pointer *wl_pointer, uint32_t serial, uint32_t time, uint32_t button, uint32_t state)
|
void WaylandPointerInterface::pointerButtonEvent(void *data, struct wl_pointer *wl_pointer, uint32_t serial, uint32_t time, uint32_t button, uint32_t state)
|
||||||
{
|
{
|
||||||
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
auto thisClass = static_cast<WaylandPointerInterface*>(data);
|
||||||
thisClass->onPointerButton(serial, time, button, state);
|
thisClass->onPointerButton(serial, time, button, state);
|
||||||
|
(void)wl_pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandPointerInterface::onPointerFrame()
|
void WaylandPointerInterface::onPointerFrame()
|
||||||
|
@ -63,6 +81,8 @@ void WaylandPointerInterface::onPointerFrame()
|
||||||
{
|
{
|
||||||
const auto locx = wl_fixed_to_double(mWorkingPointerEvent.surface_x);
|
const auto locx = wl_fixed_to_double(mWorkingPointerEvent.surface_x);
|
||||||
const auto locy = wl_fixed_to_double(mWorkingPointerEvent.surface_y);
|
const auto locy = wl_fixed_to_double(mWorkingPointerEvent.surface_y);
|
||||||
|
(void)locx;
|
||||||
|
(void)locy;
|
||||||
}
|
}
|
||||||
else if (mWorkingPointerEvent.event_mask & POINTER_EVENT_LEAVE)
|
else if (mWorkingPointerEvent.event_mask & POINTER_EVENT_LEAVE)
|
||||||
{
|
{
|
||||||
|
@ -75,6 +95,7 @@ void WaylandPointerInterface::onPointerFrame()
|
||||||
else if (mWorkingPointerEvent.event_mask & POINTER_EVENT_BUTTON)
|
else if (mWorkingPointerEvent.event_mask & POINTER_EVENT_BUTTON)
|
||||||
{
|
{
|
||||||
const bool released = mWorkingPointerEvent.state == WL_POINTER_BUTTON_STATE_RELEASED;
|
const bool released = mWorkingPointerEvent.state == WL_POINTER_BUTTON_STATE_RELEASED;
|
||||||
|
(void)released;
|
||||||
}
|
}
|
||||||
mWorkingPointerEvent = WaylandPointerEvent();
|
mWorkingPointerEvent = WaylandPointerEvent();
|
||||||
}
|
}
|
||||||
|
@ -86,6 +107,7 @@ void WaylandPointerInterface::onPointerButton(uint32_t serial, uint32_t time, ui
|
||||||
mWorkingPointerEvent.serial = serial;
|
mWorkingPointerEvent.serial = serial;
|
||||||
mWorkingPointerEvent.button = button;
|
mWorkingPointerEvent.button = button;
|
||||||
mWorkingPointerEvent.state = state;
|
mWorkingPointerEvent.state = state;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandPointerInterface::onPointerEnter(uint32_t serial, struct wl_surface *surface, wl_fixed_t surface_x, wl_fixed_t surface_y)
|
void WaylandPointerInterface::onPointerEnter(uint32_t serial, struct wl_surface *surface, wl_fixed_t surface_x, wl_fixed_t surface_y)
|
||||||
|
@ -94,6 +116,7 @@ void WaylandPointerInterface::onPointerEnter(uint32_t serial, struct wl_surface
|
||||||
mWorkingPointerEvent.serial = serial;
|
mWorkingPointerEvent.serial = serial;
|
||||||
mWorkingPointerEvent.surface_x = surface_x;
|
mWorkingPointerEvent.surface_x = surface_x;
|
||||||
mWorkingPointerEvent.surface_y = surface_y;
|
mWorkingPointerEvent.surface_y = surface_y;
|
||||||
|
(void)surface;
|
||||||
}
|
}
|
||||||
|
|
||||||
void WaylandPointerInterface::onPointerLeave(uint32_t serial)
|
void WaylandPointerInterface::onPointerLeave(uint32_t serial)
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
void WaylandSeatInterface::seatCapabilitiesEvent(void *data, struct wl_seat *wl_seat, uint32_t capabilities)
|
void WaylandSeatInterface::seatCapabilitiesEvent(void *data, struct wl_seat *wl_seat, uint32_t capabilities)
|
||||||
{
|
{
|
||||||
auto thisClass = static_cast<WaylandSeatInterface*>(data);
|
auto thisClass = static_cast<WaylandSeatInterface*>(data);
|
||||||
|
(void)wl_seat;
|
||||||
thisClass->onSeatCapabilitiesEvent(capabilities);
|
thisClass->onSeatCapabilitiesEvent(capabilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,4 +46,6 @@ WaylandSeatInterface::WaylandSeatInterface(wl_seat* seat)
|
||||||
void WaylandSeatInterface::seatNameEvent(void *data, struct wl_seat *wl_seat, const char *name)
|
void WaylandSeatInterface::seatNameEvent(void *data, struct wl_seat *wl_seat, const char *name)
|
||||||
{
|
{
|
||||||
MLOG_INFO("seat name: " << name);
|
MLOG_INFO("seat name: " << name);
|
||||||
|
(void)data;
|
||||||
|
(void)wl_seat;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,9 @@ void WaylandSurface::add(mt::Window* window, wl_compositor* compositor, xdg_wm_b
|
||||||
auto wayland_window = std::make_unique<WaylandSurface>(window, compositor, xdg_wm_base, buffer, eglInterface);
|
auto wayland_window = std::make_unique<WaylandSurface>(window, compositor, xdg_wm_base, buffer, eglInterface);
|
||||||
|
|
||||||
const auto drawing_mode = eglInterface ? DrawingMode::GRAPH : DrawingMode::RASTER;
|
const auto drawing_mode = eglInterface ? DrawingMode::GRAPH : DrawingMode::RASTER;
|
||||||
window->setPlatformWindow(std::move(wayland_window), fontsManager, drawing_mode);
|
window->setPlatformWindow(std::move(wayland_window));
|
||||||
|
(void)fontsManager;
|
||||||
|
(void)drawing_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
WaylandSurface::WaylandSurface(mt::Window* window, wl_compositor* compositor, xdg_wm_base* xdg_wm_base, std::shared_ptr<WaylandBuffer> buffer, WaylandEglInterface* eglInterface)
|
WaylandSurface::WaylandSurface(mt::Window* window, wl_compositor* compositor, xdg_wm_base* xdg_wm_base, std::shared_ptr<WaylandBuffer> buffer, WaylandEglInterface* eglInterface)
|
||||||
|
@ -81,6 +83,7 @@ void WaylandSurface::onConfigure(xdg_surface *xdg_surface, uint32_t serial)
|
||||||
|
|
||||||
void WaylandSurface::beforePaint(mt::Screen* screen)
|
void WaylandSurface::beforePaint(mt::Screen* screen)
|
||||||
{
|
{
|
||||||
|
(void)screen;
|
||||||
if (mEglWindowInterface)
|
if (mEglWindowInterface)
|
||||||
{
|
{
|
||||||
mEglWindowInterface->initialize(mSurface, mWindow->getWidth(), mWindow->getHeight());
|
mEglWindowInterface->initialize(mSurface, mWindow->getWidth(), mWindow->getHeight());
|
||||||
|
@ -94,6 +97,7 @@ void WaylandSurface::beforePaint(mt::Screen* screen)
|
||||||
|
|
||||||
void WaylandSurface::afterPaint(mt::Screen* screen)
|
void WaylandSurface::afterPaint(mt::Screen* screen)
|
||||||
{
|
{
|
||||||
|
(void)screen;
|
||||||
if (mEglWindowInterface)
|
if (mEglWindowInterface)
|
||||||
{
|
{
|
||||||
mEglWindowInterface->afterPaint();
|
mEglWindowInterface->afterPaint();
|
||||||
|
|
|
@ -38,7 +38,8 @@ public:
|
||||||
|
|
||||||
void onResize(unsigned width, unsigned height)
|
void onResize(unsigned width, unsigned height)
|
||||||
{
|
{
|
||||||
|
(void) width;
|
||||||
|
(void) height;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
#include "Window.h"
|
#include "Window.h"
|
||||||
#include "FileLogger.h"
|
#include "FileLogger.h"
|
||||||
|
#include "MainApplication.h"
|
||||||
#include "GuiApplication.h"
|
#include "GuiApplication.h"
|
||||||
|
|
||||||
#include "TestFramework.h"
|
#include "TestFramework.h"
|
||||||
|
|
Loading…
Reference in a new issue