mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Update docs
This commit is contained in:
@@ -2,6 +2,48 @@
|
||||
Version History
|
||||
***************
|
||||
|
||||
0.12.0 - Unreleased
|
||||
===================
|
||||
|
||||
Added
|
||||
-----
|
||||
|
||||
- Support for light master (``.esl``) plugins.
|
||||
- :cpp:any:`LoadCurrentLoadOrderState()` in :cpp:any:`loot::GameInterface` to
|
||||
expose load order cache management to clients, as libloadorder no longer
|
||||
internally manages it.
|
||||
- :cpp:any:`loot::SetLoggingCallback()` to allow clients to handle the LOOT
|
||||
API's logging statements themselves.
|
||||
- Logging of libloadorder error details.
|
||||
|
||||
Changed
|
||||
-------
|
||||
|
||||
- :cpp:any:`LoadPlugins()` now loads the current load order
|
||||
state before loading plugins.
|
||||
- Replaced libespm dependency with esplugin v1.0.5. This significantly improves
|
||||
safety and sorting performance, especially for large load orders.
|
||||
- Updated libloadorder to v10.0.0. This significantly improves safety and the
|
||||
performance of load order operations, at the expense of exposing cache
|
||||
management to the client.
|
||||
- Updated libgit2 to v0.26.0.
|
||||
|
||||
Removed
|
||||
-------
|
||||
|
||||
- ``DatabaseInterface::EvalLists()`` as it was superseded in v0.11.0 by the
|
||||
ability to evaluate conditions when getting general messages and individual
|
||||
plugins' metadata, which is more efficient.
|
||||
- ``SetLoggingVerbosity()`` and ``SetLogFile()`` as they have been superseded
|
||||
by the new :cpp:any:`loot::SetLoggingCallback()` function.
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Formatting in metadata documentation.
|
||||
- Saving metadata wrote entries in an inconsistent order.
|
||||
- Clang build errors.
|
||||
|
||||
0.11.1 - 2017-06-19
|
||||
===================
|
||||
|
||||
|
||||
@@ -39,36 +39,22 @@ metadata files into memory, but does not evaluate these conditions, so the
|
||||
loaded metadata may contain metadata that is invalid for the installed game that
|
||||
the :cpp:class:`loot::DatabaseInterface` object being operated on was created for.
|
||||
|
||||
The :cpp:func:`EvalLists` must be called to evaluate any conditions in the
|
||||
loaded metadata. In doing so it discards any metadata with a condition that
|
||||
evaluates to false, but the pre-evaluation metadata is cached internally so that
|
||||
re-evaluation does not require the lists to be reloaded.
|
||||
|
||||
Caching
|
||||
=======
|
||||
|
||||
All unevaluated metadata is cached between calls to :cpp:func:`LoadLists`.
|
||||
Evaluated metadata is cached between calls to :cpp:func:`EvalLists`. Metadata
|
||||
conditions and their results are cached between calls to :cpp:func:`EvalLists`,
|
||||
so that every call to :cpp:func:`EvalLists` re-evaluates all conditions, but
|
||||
conditions that are used more than once in the loaded metadata are only
|
||||
evaluated once.
|
||||
|
||||
Plugin content is cached between calls to :cpp:func:`LoadPlugins` and
|
||||
:cpp:func:`SortPlugins`.
|
||||
|
||||
Load order is cached on creation of a game using :cpp:func:`CreateGameHandle`
|
||||
and when :cpp:func:`SetLoadOrder` is called, and plugins' active states are
|
||||
cached between calls to :cpp:func:`LoadPlugins` and :cpp:func:`SortPlugins`.
|
||||
Load order is cached between calls to :cpp:func:`LoadPlugins`,
|
||||
:cpp:func:`SortPlugins` and :cpp:func:`LoadCurrentLoadOrderState`.
|
||||
|
||||
Performance
|
||||
===========
|
||||
|
||||
Loading metadata lists is a relatively costly operation, as is updating the
|
||||
masterlist (which involves loading it). Evaluating the loaded metadata lists is
|
||||
not very costly relative to loading them, though is performance depends on the
|
||||
type and number of conditions used in the loaded metadata, and all the
|
||||
conditions involve filesystem access.
|
||||
masterlist (which involves loading it).
|
||||
|
||||
Sorting plugins is expensive, as it involves loading all the FormIDs for all
|
||||
the plugins, apart from the game's main master file, which is skipped as an
|
||||
@@ -77,3 +63,8 @@ other plugin, so is unnecessary and slow to load).
|
||||
|
||||
Getting plugin metadata once loaded is cheap, as is getting a masterlist's
|
||||
revision.
|
||||
|
||||
Loading the current load order state is relatively cheap and can take < 1 ms
|
||||
depending on hardware and the size of the load order, but involves filesystem
|
||||
access and should not be done more often than necessary to avoid a performance
|
||||
impact.
|
||||
|
||||
@@ -9,7 +9,7 @@ Enumerations
|
||||
|
||||
.. doxygenenum:: loot::GameType
|
||||
|
||||
.. doxygenenum:: loot::LogVerbosity
|
||||
.. doxygenenum:: loot::LogLevel
|
||||
|
||||
.. doxygenenum:: loot::MessageType
|
||||
|
||||
@@ -25,9 +25,7 @@ Public-Field Data Structures
|
||||
Functions
|
||||
=========
|
||||
|
||||
.. doxygenfunction:: loot::SetLoggingVerbosity
|
||||
|
||||
.. doxygenfunction:: loot::SetLogFile
|
||||
.. doxygenfunction:: loot::SetLoggingCallback
|
||||
|
||||
.. doxygenfunction:: loot::IsCompatible
|
||||
|
||||
|
||||
Reference in New Issue
Block a user