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

View File

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

View File

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

View File

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