diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2022-01-11 21:13:17 +0200 | 
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2022-01-12 20:01:36 +0200 | 
| commit | 38e77cb958cc88dd75e4d06994c0c93953692f83 (patch) | |
| tree | 8067a22e7151b4b24ca84d9a2b8973e225cbd246 | |
| parent | 6946a6a997061896fbb99cc654520ec6d4f7e179 (diff) | |
SL-16614 Viewer's uploader crash with RenderGLCoreProfile
| -rw-r--r-- | indra/cmake/GLOD.cmake | 2 | ||||
| -rw-r--r-- | indra/newview/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | indra/newview/llfloatermodelpreview.cpp | 21 | ||||
| -rw-r--r-- | indra/newview/llfloatermodelpreview.h | 1 | ||||
| -rw-r--r-- | indra/newview/llviewermenufile.cpp | 9 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 7 | 
6 files changed, 37 insertions, 7 deletions
| diff --git a/indra/cmake/GLOD.cmake b/indra/cmake/GLOD.cmake index a347eb6fee..6f42b44ab8 100644 --- a/indra/cmake/GLOD.cmake +++ b/indra/cmake/GLOD.cmake @@ -5,5 +5,7 @@ if (NOT USESYSTEMLIBS)    use_prebuilt_binary(glod)  endif (NOT USESYSTEMLIBS) +set(GLODLIB ON CACHE BOOL "Using GLOD library") +  set(GLOD_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include)  set(GLOD_LIBRARIES GLOD) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 5a06106de3..43aea78775 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1751,6 +1751,10 @@ endif (HAVOK OR HAVOK_TPV)  # progress view disables/enables icons based on available packages  set_source_files_properties(llprogressview.cpp PROPERTIES COMPILE_FLAGS "${LLSTARTUP_COMPILE_FLAGS}") +if (GLODLIB) +  set_source_files_properties(llfloatermodelpreview.cpp PROPERTIES COMPILE_FLAGS "-DLL_GLOD") +endif (GLODLIB) +  list(APPEND viewer_SOURCE_FILES ${viewer_HEADER_FILES})  set_source_files_properties(${viewer_HEADER_FILES} diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index abc64a7ad9..0fefb0d432 100644 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -40,6 +40,7 @@  #include "llagent.h"  #include "llbutton.h"  #include "llcombobox.h" +#include "llfloaterreg.h"  #include "llfocusmgr.h"  #include "llmeshrepository.h"  #include "llnotificationsutil.h" @@ -347,6 +348,26 @@ void LLFloaterModelPreview::initModelPreview()  	mModelPreview->setModelUpdatedCallback(boost::bind(&LLFloaterModelPreview::modelUpdated, this, _1));  } +//static +bool LLFloaterModelPreview::showModelPreview() +{ +#ifdef LL_GLOD +    if (LLRender::sGLCoreProfile) +    { +        // GLOD is incompatible with RenderGLCoreProfile, will crash on init +        LLNotificationsUtil::add("MeshUploadProfilerError"); +        return false; +    } +#endif + +    LLFloaterModelPreview* fmp = (LLFloaterModelPreview*)LLFloaterReg::getInstance("upload_model"); +    if (fmp && !fmp->isModelLoading()) +    { +        fmp->loadHighLodModel(); +    } +    return true; +} +  void LLFloaterModelPreview::onUploadOptionChecked(LLUICtrl* ctrl)  {  	if (mModelPreview) diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h index bb8cf1c587..b5dab262a3 100644 --- a/indra/newview/llfloatermodelpreview.h +++ b/indra/newview/llfloatermodelpreview.h @@ -73,6 +73,7 @@ public:      /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);  	void initModelPreview(); +	static bool showModelPreview();  	BOOL handleMouseDown(S32 x, S32 y, MASK mask);  	BOOL handleMouseUp(S32 x, S32 y, MASK mask); diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index f5b41d3179..27f66b7a55 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -549,13 +549,8 @@ class LLFileUploadModel : public view_listener_t  {  	bool handleEvent(const LLSD& userdata)  	{ -		LLFloaterModelPreview* fmp = (LLFloaterModelPreview*) LLFloaterReg::getInstance("upload_model"); -		if (fmp && !fmp->isModelLoading()) -		{ -			fmp->loadHighLodModel(); -		} -		 -		return TRUE; +        LLFloaterModelPreview::showModelPreview(); +        return TRUE;  	}  }; diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 756bb52e3e..4063626d8c 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -8789,6 +8789,13 @@ See SecondLife.log for details      type="alert">      Error while requesting mesh upload permissons.    </notification> + +  <notification +    name="MeshUploadProfilerError" +    icon="alert.tga" +    type="alert"> +Mesh uploader is incompatible with RenderGLCoreProfile, please turn RenderGLCoreProfile off in debug settings and restart the viewer. +  </notification>    <notification      name="RegionCapabilityRequestError" | 
