diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/LLWindow.cmake | 7 | ||||
| -rw-r--r-- | indra/llwindow/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | indra/llwindow/llwindow.cpp | 18 | ||||
| -rw-r--r-- | indra/llwindow/llwindowsdl.cpp | 51 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 5 | 
5 files changed, 73 insertions, 12 deletions
| diff --git a/indra/cmake/LLWindow.cmake b/indra/cmake/LLWindow.cmake index 09b8fdb83d..8cb383d718 100644 --- a/indra/cmake/LLWindow.cmake +++ b/indra/cmake/LLWindow.cmake @@ -7,13 +7,16 @@ include(Prebuilt)  include_guard()  add_library( ll::SDL INTERFACE IMPORTED ) -if (NOT (USE_AUTOBUILD_3P OR USE_CONAN) AND NOT DARWIN) +if (USESYSTEMLIBS)    include(FindPkgConfig)    pkg_check_modules(Sdl2 REQUIRED sdl2)    target_compile_definitions( ll::SDL INTERFACE LL_SDL=1)    target_include_directories(ll::SDL SYSTEM INTERFACE ${Sdl2_INCLUDE_DIRS})    target_link_directories(ll::SDL INTERFACE ${Sdl2_LIBRARY_DIRS}) -  target_link_libraries(ll::SDL INTERFACE ${Sdl2_LIBRARIES} X11) +  if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") +    list(APPEND Sdl2_LIBRARIES X11) +  endif () +  target_link_libraries(ll::SDL INTERFACE ${Sdl2_LIBRARIES})    return ()  endif () diff --git a/indra/llwindow/CMakeLists.txt b/indra/llwindow/CMakeLists.txt index cc44c1e2a1..9cf31d60d5 100644 --- a/indra/llwindow/CMakeLists.txt +++ b/indra/llwindow/CMakeLists.txt @@ -64,7 +64,7 @@ include_directories(${CMAKE_SOURCE_DIR}/llrender)  # Libraries on which this library depends, needed for Linux builds  # Sort by high-level to low-level -if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") +if (USESYSTEMLIBS)    list(APPEND viewer_SOURCE_FILES          llkeyboardsdl.cpp          llwindowsdl.cpp @@ -87,7 +87,7 @@ if (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")          )    endif (BUILD_HEADLESS) -endif (LINUX OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD") +endif (USESYSTEMLIBS)  if (DARWIN)    list(APPEND llwindow_SOURCE_FILES diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp index 207c5cac9c..ece334b8cf 100644 --- a/indra/llwindow/llwindow.cpp +++ b/indra/llwindow/llwindow.cpp @@ -74,12 +74,12 @@ S32 OSMessageBox(const std::string& text, const std::string& caption, U32 type)  #if LL_MESA_HEADLESS // !!! *FIX: (?)  	LL_WARNS() << "OSMessageBox: " << text << LL_ENDL;  	return OSBTN_OK; +#elif LL_SDL +	result = OSMessageBoxSDL(text, caption, type);  #elif LL_WINDOWS  	result = OSMessageBoxWin32(text, caption, type);  #elif LL_DARWIN  	result = OSMessageBoxMacOSX(text, caption, type); -#elif LL_SDL -	result = OSMessageBoxSDL(text, caption, type);  #else  #error("OSMessageBox not implemented for this platform!")  #endif @@ -259,12 +259,12 @@ BOOL LLWindow::copyTextToPrimary(const LLWString &src)  // static  std::vector<std::string> LLWindow::getDynamicFallbackFontList()  { -#if LL_WINDOWS +#if LL_SDL +	return LLWindowSDL::getDynamicFallbackFontList(); +#elif LL_WINDOWS  	return LLWindowWin32::getDynamicFallbackFontList();  #elif LL_DARWIN  	return LLWindowMacOSX::getDynamicFallbackFontList(); -#elif LL_SDL -	return LLWindowSDL::getDynamicFallbackFontList();  #else  	return std::vector<std::string>();  #endif @@ -273,12 +273,12 @@ std::vector<std::string> LLWindow::getDynamicFallbackFontList()  // static  std::vector<std::string> LLWindow::getDisplaysResolutionList()  { -#if LL_WINDOWS +#ifdef LL_SDL +	return std::vector<std::string>(); +#elif LL_WINDOWS  	return LLWindowWin32::getDisplaysResolutionList();  #elif LL_DARWIN  	return LLWindowMacOSX::getDisplaysResolutionList(); -#else -	return std::vector<std::string>();  #endif  } @@ -359,11 +359,13 @@ void LLSplashScreen::show()  {  	if (!gSplashScreenp)  	{ +#if !LL_SDL  #if LL_WINDOWS && !LL_MESA_HEADLESS  		gSplashScreenp = new LLSplashScreenWin32;  #elif LL_DARWIN  		gSplashScreenp = new LLSplashScreenMacOSX;  #endif +#endif // !LL_SDL  		if (gSplashScreenp)  		{  			gSplashScreenp->showImpl(); diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index 7e2af357eb..293e6ec272 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -66,6 +66,33 @@ const S32 MAX_NUM_RESOLUTIONS = 200;  // static variable for ATI mouse cursor crash work-around:  static bool ATIbug = false;  +#if LL_DARWIN + +namespace +{ +	struct NativeKeyEventData { +		enum EventType { +			KEYUNKNOWN, +			KEYUP, +			KEYDOWN, +			KEYCHAR +		}; + +		EventType   mKeyEvent = KEYUNKNOWN; +		uint32_t    mEventType = 0; +		uint32_t    mEventModifiers = 0; +		uint32_t    mEventKeyCode = 0; +		uint32_t    mEventChars = 0; +		uint32_t    mEventUnmodChars = 0; +		bool        mEventRepeat = false; +	} *mRawKeyEvent = NULL; +} +// +// LLWindowMacOSX +// + +#endif +  //  // LLWindowSDL  // @@ -2535,6 +2562,30 @@ BOOL LLWindowSDL::dialogColorPicker( F32 *r, F32 *g, F32 *b)  {  	return (FALSE);  } + +#if LL_DARWIN + +LLSD LLWindowSDL::getNativeKeyData() +{ +	LLSD result = LLSD::emptyMap(); + +	if(mRawKeyEvent) +	{ +        result["event_type"] = LLSD::Integer(mRawKeyEvent->mEventType); +        result["event_modifiers"] = LLSD::Integer(mRawKeyEvent->mEventModifiers); +        result["event_keycode"] = LLSD::Integer(mRawKeyEvent->mEventKeyCode); +        result["event_chars"] = (mRawKeyEvent->mEventChars) ? LLSD(LLSD::Integer(mRawKeyEvent->mEventChars)) : LLSD(); +        result["event_umodchars"] = (mRawKeyEvent->mEventUnmodChars) ? LLSD(LLSD::Integer(mRawKeyEvent->mEventUnmodChars)) : LLSD(); +        result["event_isrepeat"] = LLSD::Boolean(mRawKeyEvent->mEventRepeat); +	} + +	LL_DEBUGS() << "native key data is: " << result << LL_ENDL; + +	return result; +} + +#endif // LL_DARWIN +  #endif // LL_GTK  #if LL_LINUX || LL_FREEBSD diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 52a1712393..e345b55845 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1374,12 +1374,15 @@ set_source_files_properties(     )  if (DARWIN) +  if (NOT USESYSTEMLIBS)    LIST(APPEND viewer_SOURCE_FILES llappviewermacosx.cpp)    LIST(APPEND viewer_SOURCE_FILES llappviewermacosx-objc.mm)    LIST(APPEND viewer_SOURCE_FILES llappviewermacosx-objc.h) +  endif (NOT USESYSTEMLIBS)    LIST(APPEND viewer_SOURCE_FILES llfilepicker_mac.mm)    LIST(APPEND viewer_HEADER_FILES llfilepicker_mac.h) +  if (NOT USESYSTEMLIBS)    # This should be compiled with the viewer.    LIST(APPEND viewer_SOURCE_FILES llappdelegate-objc.mm)    set_source_files_properties( @@ -1394,6 +1397,7 @@ if (DARWIN)      # warnings.      COMPILE_FLAGS "-fmodules -fcxx-modules -Wno-nullability-completeness"      ) +  endif (NOT USESYSTEMLIBS)    # Add resource files to the project.    set(viewer_RESOURCE_FILES @@ -1920,6 +1924,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}          ll::bugsplat          ll::tracy          ll::libvlc +        ll::fontconfig          )  if( TARGET ll::intel_memops ) | 
