소스 검색

Hopefully addressed #148 while detecting the patches folder

Signed-off-by: Alexis Maiquez <almamu@almamu.com>
Alexis Maiquez 3 년 전
부모
커밋
6d5c5b7825

+ 26 - 5
src/WallpaperEngine/Application/CWallpaperApplication.cpp

@@ -40,11 +40,32 @@ void CWallpaperApplication::setupContainer (CCombinedContainer& container, const
 	container.addPkg (basepath / "scene.pkg");
 	container.addPkg (basepath / "gifscene.pkg");
 	container.add (new CDirectory (this->m_context.assets));
-#if !NDEBUG
-	container.add (new CDirectory ("../share/"));
-#else
-	container.add (new CDirectory (DATADIR));
-#endif /* DEBUG */
+
+	// add two possible patches directories to the container
+	// hopefully one sticks
+	bool relative = true;
+	bool absolute = true;
+
+	try
+	{
+		container.add (new CDirectory ("../share/"));
+	}
+	catch (std::runtime_error& ex)
+	{
+		relative = false;
+	}
+
+	try
+	{
+		container.add (new CDirectory (DATADIR));
+	}
+	catch (std::runtime_error& ex)
+	{
+		absolute = false;
+	}
+
+	if (!relative && !absolute)
+		sLog.error ("WARNING: Shader patches directory cannot be found, this might make some backgrounds not work properly");
 
     // TODO: move this somewhere else?
     CVirtualContainer* virtualContainer = new CVirtualContainer ();

+ 1 - 1
src/WallpaperEngine/Assets/CDirectory.cpp

@@ -8,7 +8,7 @@
 
 using namespace WallpaperEngine::Assets;
 
-CDirectory::CDirectory (std::filesystem::path  basepath) :
+CDirectory::CDirectory (std::filesystem::path basepath) :
     m_basepath (std::move(basepath))
 {
     // ensure the specified path exists

+ 0 - 6
src/WallpaperEngine/Render/Drivers/Output/CX11Output.cpp

@@ -13,9 +13,7 @@ void CustomXIOErrorExitHandler (Display* dsp, void* userdata)
 {
     auto context = static_cast <CX11Output*> (userdata);
 
-#if !NDEBUG
     sLog.debugerror ("Critical XServer error detected. Attempting to recover...");
-#endif /* DEBUG */
 
     // refetch all the resources
     context->reset ();
@@ -23,9 +21,7 @@ void CustomXIOErrorExitHandler (Display* dsp, void* userdata)
 
 int CustomXErrorHandler (Display* dpy, XErrorEvent* event)
 {
-#if !NDEBUG
     sLog.debugerror ("Detected X error");
-#endif /* DEBUG */
 
     // call the original handler so we can keep some information reporting
     originalErrorHandler (dpy, event);
@@ -35,9 +31,7 @@ int CustomXErrorHandler (Display* dpy, XErrorEvent* event)
 
 int CustomXIOErrorHandler (Display* dsp)
 {
-#if !NDEBUG
     sLog.debugerror ("Detected X error");
-#endif /* DEBUG */
 
     return 0;
 }