CIrrDeviceLinux: Add support For TouchInput.touchedCount

This commit is contained in:
TheBrokenRail 2021-08-27 04:58:46 -04:00 committed by GitHub
parent da33f80bb8
commit c26ff3476f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 0 deletions

@ -112,6 +112,9 @@ CIrrDeviceLinux::CIrrDeviceLinux(const SIrrlichtCreationParameters& param)
XDisplay(0), VisualInfo(0), Screennr(0), XWindow(0), StdHints(0), SoftwareImage(0),
XInputMethod(0), XInputContext(0),
HasNetWM(false),
#endif
#if defined(_IRR_LINUX_X11_XINPUT2_)
currentTouchedCount(0),
#endif
Width(param.WindowSize.Width), Height(param.WindowSize.Height),
WindowHasFocus(false), WindowMinimized(false),
@ -1051,6 +1054,14 @@ bool CIrrDeviceLinux::run()
irrevent.TouchInput.X = de->event_x;
irrevent.TouchInput.Y = de->event_y;
if (irrevent.TouchInput.Event == ETIE_PRESSED_DOWN) {
currentTouchedCount++;
}
irrevent.TouchInput.touchedCount = currentTouchedCount;
if (currentTouchedCount > 0 && irrevent.TouchInput.Event == ETIE_LEFT_UP) {
currentTouchedCount--;
}
postEventFromUser(irrevent);
}
}

@ -425,6 +425,10 @@ namespace irr
};
core::array<JoystickInfo> ActiveJoysticks;
#endif
#if defined(_IRR_LINUX_X11_XINPUT2_)
int currentTouchedCount;
#endif
};

@ -37,6 +37,7 @@ set(CMAKE_REQUIRED_INCLUDES ${PROJECT_SOURCE_DIR}/include)
unset(OGLES1_ENABLED CACHE)
unset(OGLES2_ENABLED CACHE)
unset(OGL_ENABLED CACHE)
unset(XINPUT2_ENABLED CACHE)
check_symbol_exists(_IRR_COMPILE_WITH_OGLES1_ "IrrCompileConfig.h" OGLES1_ENABLED)
if(OGLES1_ENABLED)
@ -55,6 +56,10 @@ if(OGL_ENABLED)
set(OpenGL_GL_PREFERENCE "LEGACY")
find_package(OpenGL REQUIRED)
endif()
check_symbol_exists(_IRR_LINUX_X11_XINPUT2_ "IrrCompileConfig.h" XINPUT2_ENABLED)
if(XINPUT2_ENABLED)
find_library(XINPUT_LIBRARY Xi REQUIRED)
endif()
# Platform-specific libs
@ -96,6 +101,7 @@ set(link_libs
${OPENGLES_LIBRARY}
${OPENGLES2_LIBRARIES}
${EGL_LIBRARY}
${XINPUT_LIBRARY}
"$<$<PLATFORM_ID:Android>:native_app_glue -landroid -llog>"
${COCOA_LIB}