diff --git a/doc/libf3d/doxygen/_sources/api/class_structf3d_1_1exception.rst b/doc/libf3d/doxygen/_sources/api/class_structf3d_1_1exception.rst
index b8c3fd3d45..005fdc8d51 100644
--- a/doc/libf3d/doxygen/_sources/api/class_structf3d_1_1exception.rst
+++ b/doc/libf3d/doxygen/_sources/api/class_structf3d_1_1exception.rst
@@ -20,6 +20,7 @@ Derived Types
- ``public f3d::context::loading_exception`` (:ref:`exhale_struct_structf3d_1_1context_1_1loading__exception`)
- ``public f3d::context::symbol_exception`` (:ref:`exhale_struct_structf3d_1_1context_1_1symbol__exception`)
+- ``public f3d::engine::cache_exception`` (:ref:`exhale_struct_structf3d_1_1engine_1_1cache__exception`)
- ``public f3d::engine::no_interactor_exception`` (:ref:`exhale_struct_structf3d_1_1engine_1_1no__interactor__exception`)
- ``public f3d::engine::no_window_exception`` (:ref:`exhale_struct_structf3d_1_1engine_1_1no__window__exception`)
- ``public f3d::engine::plugin_exception`` (:ref:`exhale_struct_structf3d_1_1engine_1_1plugin__exception`)
diff --git a/doc/libf3d/doxygen/_sources/api/classf3d_1_1engine.rst b/doc/libf3d/doxygen/_sources/api/classf3d_1_1engine.rst
index 8f1fb124d4..a321bce828 100644
--- a/doc/libf3d/doxygen/_sources/api/classf3d_1_1engine.rst
+++ b/doc/libf3d/doxygen/_sources/api/classf3d_1_1engine.rst
@@ -13,6 +13,7 @@ Nested Relationships
Nested Types
************
+- :ref:`exhale_struct_structf3d_1_1engine_1_1cache__exception`
- :ref:`exhale_struct_structf3d_1_1engine_1_1libInformation`
- :ref:`exhale_struct_structf3d_1_1engine_1_1no__interactor__exception`
- :ref:`exhale_struct_structf3d_1_1engine_1_1no__window__exception`
diff --git a/doc/libf3d/doxygen/_sources/api/file_public_engine.h.rst b/doc/libf3d/doxygen/_sources/api/file_public_engine.h.rst
index e9c665d076..5f31f6a0b9 100644
--- a/doc/libf3d/doxygen/_sources/api/file_public_engine.h.rst
+++ b/doc/libf3d/doxygen/_sources/api/file_public_engine.h.rst
@@ -66,6 +66,8 @@ Classes
-------
+- :ref:`exhale_struct_structf3d_1_1engine_1_1cache__exception`
+
- :ref:`exhale_struct_structf3d_1_1engine_1_1libInformation`
- :ref:`exhale_struct_structf3d_1_1engine_1_1no__interactor__exception`
diff --git a/doc/libf3d/doxygen/_sources/api/namespace_f3d.rst b/doc/libf3d/doxygen/_sources/api/namespace_f3d.rst
index 6681e6f193..d6212c08b4 100644
--- a/doc/libf3d/doxygen/_sources/api/namespace_f3d.rst
+++ b/doc/libf3d/doxygen/_sources/api/namespace_f3d.rst
@@ -23,6 +23,8 @@ Classes
- :ref:`exhale_struct_structf3d_1_1context_1_1symbol__exception`
+- :ref:`exhale_struct_structf3d_1_1engine_1_1cache__exception`
+
- :ref:`exhale_struct_structf3d_1_1engine_1_1libInformation`
- :ref:`exhale_struct_structf3d_1_1engine_1_1no__interactor__exception`
diff --git a/doc/libf3d/doxygen/_sources/api/program_listing_file_public_engine.h.rst b/doc/libf3d/doxygen/_sources/api/program_listing_file_public_engine.h.rst
index aea79aa0a1..da58921063 100644
--- a/doc/libf3d/doxygen/_sources/api/program_listing_file_public_engine.h.rst
+++ b/doc/libf3d/doxygen/_sources/api/program_listing_file_public_engine.h.rst
@@ -62,7 +62,7 @@ Program Listing for File engine.h
engine& operator=(const engine& other) = delete;
engine& operator=(engine&& other) noexcept;
- engine& setCachePath(const std::string& cachePath);
+ engine& setCachePath(const std::filesystem::path& cachePath);
engine& setOptions(const options& opt);
@@ -78,12 +78,13 @@ Program Listing for File engine.h
static std::map getRenderingBackendList();
- static void loadPlugin(
- const std::string& nameOrPath, const std::vector& pluginSearchPaths = {});
+ static void loadPlugin(const std::string& pathOrName,
+ const std::vector& pluginSearchPaths = {});
static void autoloadPlugins();
- [[nodiscard]] static std::vector getPluginsList(const std::string& pluginPath);
+ [[nodiscard]] static std::vector getPluginsList(
+ const std::filesystem::path& pluginPath);
struct libInformation
{
@@ -128,6 +129,11 @@ Program Listing for File engine.h
explicit plugin_exception(const std::string& what = "");
};
+ struct cache_exception : public exception
+ {
+ explicit cache_exception(const std::string& what = "");
+ };
+
private:
class internals;
internals* Internals;
diff --git a/doc/libf3d/doxygen/_sources/api/structf3d_1_1engine_1_1cache__exception.rst b/doc/libf3d/doxygen/_sources/api/structf3d_1_1engine_1_1cache__exception.rst
new file mode 100644
index 0000000000..847fbcc853
--- /dev/null
+++ b/doc/libf3d/doxygen/_sources/api/structf3d_1_1engine_1_1cache__exception.rst
@@ -0,0 +1,32 @@
+.. _exhale_struct_structf3d_1_1engine_1_1cache__exception:
+
+Struct engine::cache_exception
+==============================
+
+- Defined in :ref:`file_public_engine.h`
+
+
+Nested Relationships
+--------------------
+
+This struct is a nested type of :ref:`exhale_class_classf3d_1_1engine`.
+
+
+Inheritance Relationships
+-------------------------
+
+Base Type
+*********
+
+- ``public f3d::exception`` (:ref:`exhale_class_structf3d_1_1exception`)
+
+
+Struct Documentation
+--------------------
+
+
+.. doxygenstruct:: f3d::engine::cache_exception
+ :project: libf3d
+ :members:
+ :protected-members:
+ :undoc-members:
\ No newline at end of file
diff --git a/doc/libf3d/doxygen/api/class_structf3d_1_1exception.html b/doc/libf3d/doxygen/api/class_structf3d_1_1exception.html
index c17c141c37..27bd4bdc39 100644
--- a/doc/libf3d/doxygen/api/class_structf3d_1_1exception.html
+++ b/doc/libf3d/doxygen/api/class_structf3d_1_1exception.html
@@ -134,6 +134,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
@@ -348,6 +349,7 @@ Derived Types
+ Throws a engine::no_window_exception if the window cannot be created for another reason Throws a engine::cache_exception if the default cache directory cannot be used
-
static engine createExternalGLX()
-Create an engine with an external GLX context. Equivalent to createExternal(f3d::context::glx()); VTK >= 9.4 required. Throws context::loading_exception if GLX library is not found or if not running on Linux.
+Create an engine with an external GLX context. Equivalent to createExternal(f3d::context::glx()); VTK >= 9.4 required. Throws a context::loading_exception if a needed graphic library cannot be loaded Throws a context::symbol_exception if a needed symbol cannot be found in graphic library Throws a engine::no_window_exception if the window cannot be created for another reason Throws a engine::cache_exception if the default cache directory cannot be used
-
static engine createExternalWGL()
-Create an engine with an external WGL context. Equivalent to createExternal(f3d::context::wgl()); VTK >= 9.4 required. Throws context::loading_exception if WGL library is not found or if not running on Windows.
+Create an engine with an external WGL context. Equivalent to createExternal(f3d::context::wgl()); VTK >= 9.4 required. Throws a context::loading_exception if a needed graphic library cannot be loaded Throws a context::symbol_exception if a needed symbol cannot be found in graphic library Throws a engine::no_window_exception if the window cannot be created for another reason Throws a engine::cache_exception if the default cache directory cannot be used
-
static engine createExternalCOCOA()
-Create an engine with an external COCOA context. Equivalent to createExternal(f3d::context::cocoa()); VTK >= 9.4 required. Throws context::loading_exception if WGL library is not found or if not running on Windows.
+Create an engine with an external COCOA context. Equivalent to createExternal(f3d::context::cocoa()); VTK >= 9.4 required. Throws a context::loading_exception if a needed graphic library cannot be loaded Throws a context::symbol_exception if a needed symbol cannot be found in graphic library Throws a engine::no_window_exception if the window cannot be created for another reason Throws a engine::cache_exception if the default cache directory cannot be used
-
static engine createExternalEGL()
-Create an engine with an external EGL context. Equivalent to createExternal(f3d::context::egl()); VTK >= 9.4 required. Throws context::loading_exception if EGL library is not found.
+Create an engine with an external EGL context. Equivalent to createExternal(f3d::context::egl()); VTK >= 9.4 required. Throws a context::loading_exception if a needed graphic library cannot be loaded Throws a context::symbol_exception if a needed symbol cannot be found in graphic library Throws a engine::no_window_exception if the window cannot be created for another reason Throws a engine::cache_exception if the default cache directory cannot be used
-
static engine createExternalOSMesa()
-Create an engine with an external OSMesa context. Equivalent to createExternal(f3d::context::osmesa()); VTK >= 9.4 required. Throws context::loading_exception if OSMesa library is not found.
+Create an engine with an external OSMesa context. Equivalent to createExternal(f3d::context::osmesa()); VTK >= 9.4 required. Throws a context::loading_exception if a needed graphic library cannot be loaded Throws a context::symbol_exception if a needed symbol cannot be found in graphic library Throws a engine::no_window_exception if the window cannot be created for another reason Throws a engine::cache_exception if the default cache directory cannot be used
@@ -523,9 +525,9 @@ Class Documentation
@@ -535,9 +537,9 @@ Class Documentation
@@ -553,6 +555,20 @@ Class Documentation
+
-
struct libInformation
diff --git a/doc/libf3d/doxygen/api/classf3d_1_1image.html b/doc/libf3d/doxygen/api/classf3d_1_1image.html
index 02aa4878a7..5a789a2c1d 100644
--- a/doc/libf3d/doxygen/api/classf3d_1_1image.html
+++ b/doc/libf3d/doxygen/api/classf3d_1_1image.html
@@ -134,6 +134,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/classf3d_1_1interactor.html b/doc/libf3d/doxygen/api/classf3d_1_1interactor.html
index 85f59ad3cf..8a37d3e23f 100644
--- a/doc/libf3d/doxygen/api/classf3d_1_1interactor.html
+++ b/doc/libf3d/doxygen/api/classf3d_1_1interactor.html
@@ -134,6 +134,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/classf3d_1_1log.html b/doc/libf3d/doxygen/api/classf3d_1_1log.html
index c79defe28a..e8d7ab82c6 100644
--- a/doc/libf3d/doxygen/api/classf3d_1_1log.html
+++ b/doc/libf3d/doxygen/api/classf3d_1_1log.html
@@ -134,6 +134,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/classf3d_1_1ratio__t.html b/doc/libf3d/doxygen/api/classf3d_1_1ratio__t.html
index 92a16897b6..c75937cd8a 100644
--- a/doc/libf3d/doxygen/api/classf3d_1_1ratio__t.html
+++ b/doc/libf3d/doxygen/api/classf3d_1_1ratio__t.html
@@ -134,6 +134,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/classf3d_1_1scene.html b/doc/libf3d/doxygen/api/classf3d_1_1scene.html
index 2873613718..b5e390c1bb 100644
--- a/doc/libf3d/doxygen/api/classf3d_1_1scene.html
+++ b/doc/libf3d/doxygen/api/classf3d_1_1scene.html
@@ -134,6 +134,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/classf3d_1_1utils.html b/doc/libf3d/doxygen/api/classf3d_1_1utils.html
index ecbca110db..f3432d2377 100644
--- a/doc/libf3d/doxygen/api/classf3d_1_1utils.html
+++ b/doc/libf3d/doxygen/api/classf3d_1_1utils.html
@@ -134,6 +134,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/classf3d_1_1utils_1_1string__template.html b/doc/libf3d/doxygen/api/classf3d_1_1utils_1_1string__template.html
index 245503da5a..6315e2b865 100644
--- a/doc/libf3d/doxygen/api/classf3d_1_1utils_1_1string__template.html
+++ b/doc/libf3d/doxygen/api/classf3d_1_1utils_1_1string__template.html
@@ -134,6 +134,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/classf3d_1_1window.html b/doc/libf3d/doxygen/api/classf3d_1_1window.html
index 900dd072b0..e75c960c26 100644
--- a/doc/libf3d/doxygen/api/classf3d_1_1window.html
+++ b/doc/libf3d/doxygen/api/classf3d_1_1window.html
@@ -134,6 +134,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/dir_public.html b/doc/libf3d/doxygen/api/dir_public.html
index 90cf9e2c91..a162e681db 100644
--- a/doc/libf3d/doxygen/api/dir_public.html
+++ b/doc/libf3d/doxygen/api/dir_public.html
@@ -132,6 +132,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/file_public_camera.h.html b/doc/libf3d/doxygen/api/file_public_camera.h.html
index dad97ad9b7..befdcf4f04 100644
--- a/doc/libf3d/doxygen/api/file_public_camera.h.html
+++ b/doc/libf3d/doxygen/api/file_public_camera.h.html
@@ -132,6 +132,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/file_public_context.h.html b/doc/libf3d/doxygen/api/file_public_context.h.html
index b155165c16..c3cb2a967b 100644
--- a/doc/libf3d/doxygen/api/file_public_context.h.html
+++ b/doc/libf3d/doxygen/api/file_public_context.h.html
@@ -132,6 +132,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
diff --git a/doc/libf3d/doxygen/api/file_public_engine.h.html b/doc/libf3d/doxygen/api/file_public_engine.h.html
index daade826bf..3c694a4390 100644
--- a/doc/libf3d/doxygen/api/file_public_engine.h.html
+++ b/doc/libf3d/doxygen/api/file_public_engine.h.html
@@ -132,6 +132,7 @@
Struct camera_state_t
Struct context::loading_exception
Struct context::symbol_exception
+Struct engine::cache_exception
Struct engine::libInformation
Struct engine::no_interactor_exception
Struct engine::no_window_exception
@@ -370,6 +371,7 @@ Namespaces