1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-01-21 06:53:53 +00:00
Commit graph

476 commits

Author SHA1 Message Date
ζeh Matt
ddf43ec42f
Move structs into separate headers, cleanup includes, cleanup forwarders 2022-07-18 19:15:03 +03:00
ζeh Matt
ce556ba0cc
Remove obsolete LowLevelFile 2022-07-18 16:41:43 +03:00
ζeh Matt
03302a8f5b
Conditionally build cpp for platform, remove obsolete header 2022-07-17 18:40:27 +03:00
ζeh Matt
1b70ff775d
Move platform specific file code into platform and cleanup LowLevelFile 2022-07-16 20:40:42 +03:00
elsid
7e6c13630a Use target_precompile_headers for the most expensive headers 2022-07-01 14:05:17 +00:00
glassmancody.info
b09411d396 allow soft particles on meshes and add extra data extensions 2022-06-29 18:15:12 -07:00
Nelsson Huotari
334c6dde0b custom class for osgAnimation::RigGeometry, Collada animated deforming body parts 2022-06-21 15:27:34 +00:00
ζeh Matt
d5ec959449
Create platform component for platform specific things 2022-06-06 20:45:51 +03:00
elsid
3affe9913f
Limit the number of simultaneously open not actively used content files
Use LRU cache for ESMReaders. When cache capacity is reached close least
recently used ESMReader. Remember the file name if a reader was open. Once the
reader requested again open the file if there is stored name for it. Put
released ESMReader to the back of the free items list. Close ESMReader's from
the front of the free items list.

Cached item can be used only by one client at the same time. If the same item is
requested twice exception is thrown. This should never happen in practice. If
this happens need to fix the client logic.

It's allowed to go over the capacity limit when requesting different readers.
Ideally this should never happen but there will be system error anyway
signalizing about too many open files. Need to fix client logic in this case.

All places that were using a vector of ESMReaders now using the cache. Cache is
local for each use case and there is no need for a thread safety.
2022-06-03 01:29:03 +02:00
elsid
ea295a2ac3
Fix build with lld linker
Boost.Filesystem started to depend on Boost.Atomic on 1.77.0 version but lld
can't find library on its own:

libboost_atomic.so.1.79.0 => not found
2022-05-22 15:27:48 +02:00
cody glassman
04843fed6d moddable post-processing pipeline 2022-05-15 10:03:58 -07:00
madsbuvi
dd5901d351 Initial commit
Multiview shaders.

Refactor Frustum management

Rewrite shared shadow map

cull mask should respect stereo

Stereo savegame screencap

LocalMap refactoring

use the vertex buffer hint instead of the display list patch to enable/disable display lists

Character preview fixes
2022-04-28 21:05:34 +02:00
elsid
d2510284ec
Support TES4 in esmtool dump 2022-04-25 17:35:26 +02:00
elsid
9d6d0c6ffb
Move ConstrainedStreamBuf into separate file 2022-04-22 18:27:17 +02:00
elsid
b09570692e
Use ifstream for ESMReader
ESMReader reads the whole file, there is no need in the ConstrainedFileStream.
2022-04-15 02:58:57 +02:00
Benjamin Winger
21ffbcc4b4 Lua i18n updates 2022-04-10 07:57:02 +00:00
psi29a
fc5605fc7f Merge branch 'navmeshtool_binary_log' into 'master'
Send status of navmeshtool to launcher using type binary messages

See merge request OpenMW/openmw!1630
2022-04-06 23:40:45 +00:00
uramer
788745e004 Make coordinate calculation more robust, implement Flex widget type 2022-04-04 23:10:03 +02:00
elsid
2d5ccc804b
Exchange binary messages between navmeshtool and launcher 2022-03-30 19:24:54 +02:00
Petr Mikheev
fa115418eb [Lua] Remove queries 2022-03-15 23:35:36 +01:00
uramer
e092ee2624 Document the Lua Image widget, add UI texture resources 2022-02-25 18:18:26 +01:00
jvoisin
a55f1ad103 Merge branch 'bullet_object_tool' into 'master'
Add a tool to load and print information about all bullet objects in all cells

See merge request OpenMW/openmw!1627
2022-02-20 14:09:26 +00:00
elsid
57c1f2e231
Make sure everything compiles in ESM4 2022-02-19 02:52:49 +01:00
Bret Curtis
0f43455dc3 merge in master 2022-02-16 16:57:59 +01:00
uramer
581c3f4882 Update and document Lua Text and TextEdit widget types, fix some issues with Lua UI 2022-02-06 20:22:38 +00:00
elsid
e7f3524924
Add a tool to load and print information about all bullet objects in all cells 2022-02-04 16:14:52 +01:00
uramer
67641dcdb7 Fix compile errors 2022-02-01 19:50:03 +01:00
uramer
f07f05ddd3 Add Container widget type, use it to make Adapter code less hacky 2022-02-01 19:50:03 +01:00
uramer
086a7d9bc5 Wrap Lua settings widgets into an Adapter widget 2022-02-01 19:50:03 +01:00
uramer
fba82eb1a7 Script settings tab 2022-02-01 19:50:02 +01:00
cc9cii
ba3ae448d4 Initial import of esm4 by cc9cii 2022-01-31 08:58:45 +01:00
Petr Mikheev
53f2dfd1c0 Merge branch 'lua_ui_templates' into 'master'
Lua UI templates

See merge request OpenMW/openmw!1475
2022-01-28 09:31:46 +00:00
uramer
960dd1f708 Lua UI templates 2022-01-28 09:31:45 +00:00
psi29a
6f7a067e0c Merge branch 'esmrename' into 'master'
esm refactor work

See merge request OpenMW/openmw!1575
2022-01-27 17:52:42 +00:00
elsid
ecc654a369 Limit and filter navmesh input (#5858) 2022-01-25 14:06:53 +00:00
Bret Curtis
cdbab2325f rename esmterrain to esm3terrain 2022-01-23 17:19:30 +01:00
Bret Curtis
d1fb854521 move most of the files from esm to esm3, keep common code in esm; this is make space for a future with esm4
esm typo

esm typo
2022-01-23 17:04:48 +01:00
Petr Mikheev
9d0e427ec1 Merge branch 'dispose_lua_ui_correctly' into 'master'
Dispose Lua UI elements correctly

See merge request OpenMW/openmw!1561
2022-01-18 08:12:56 +00:00
uramer
cc528d2e08 Dispose Lua UI elements correctly 2022-01-18 08:12:56 +00:00
uramer
d1d8f058ac Lua bindings for Colours 2022-01-17 22:35:06 +00:00
Petr Mikheev
a182fdeea1 Permanent storage for Lua data 2022-01-11 11:21:03 +01:00
Petr Mikheev
0f246e7365 Use a separate instance of Lua i18n for every context 2022-01-02 09:58:51 +01:00
uramer
c865114b9b Lua UI Layers 2021-12-14 17:38:06 +00:00
elsid
c9b8ba7b46
Read navmesh tile data from database
When tile is not found in memory cache try to find it in the database.
2021-12-11 00:22:04 +01:00
elsid
953a4c5550
Add a binary to generate navmesh from content files
Load content files based on the engine config files. Generate navmesh per cell
for all cells and store into SQLite database.
2021-12-11 00:21:56 +01:00
elsid
5a6b39f8e0
Store mesh source data in recast mesh 2021-12-10 23:55:02 +01:00
psi29a
4883cbf590 Merge branch 'detain-hash-selectively-reluctant' into 'master'
Get rid of EscapeHashX classes option 5 (attempt 2): Use boost::filesystem::path rules if the path starts with ", and consume the whole thing verbatim otherwise

Closes #5804

See merge request OpenMW/openmw!1436
2021-12-10 08:38:06 +00:00
AnyOldName3
8fc09f8c51 Merge remote-tracking branch 'upstream/master' into detain-hash-selectively-reluctant
Merge conflicts included:
* One setting being removed (branch had changed its type).
* One setting's description being changed (branch had changed its type).
* List of files in components/files was changed both upstream and on the
  branch.
* Upstream had changed something in a file the branch deletes.
2021-12-09 17:09:52 +00:00
AnyOldName3
221e425fe6 Only precompile headers with MSVC 2021-12-09 14:59:17 +00:00
Petr Mikheev
c5e10dfa85 Merge branch 'refactor_sdlmappings' into 'master'
Move SDL-MyGUI input mappings to components, map both ways

See merge request OpenMW/openmw!1444
2021-12-04 12:16:38 +00:00
uramer
15c7bddd57 Move SDL-MyGUI input mappings to components, map both ways 2021-12-04 12:16:38 +00:00
Petr Mikheev
d3df3efaf1 Precompile sol.hpp in order to reduce compilation time. 2021-12-04 11:32:39 +00:00
psi29a
a15cc0959f Merge branch 'murmur_hash' into 'master'
Use MurmurHash3_x64_128 for Files::getHash

See merge request OpenMW/openmw!1404
2021-11-30 15:50:11 +00:00
uramer
e9f8c34372 Correctly set UI properties to defaults when passed nil 2021-11-28 11:31:34 +00:00
elsid
a665a38aca
Use MurmurHash3_x64_128 for file hash 2021-11-21 17:05:59 +01:00
Cody Glassman
d85f772269 Depth refactor 2021-11-21 02:25:05 +00:00
psi29a
adc3bab51e Merge branch 'Embedded-error-marker' into 'master'
Embed marker error

See merge request OpenMW/openmw!1383
2021-11-20 18:07:13 +00:00
Cédric Mocquillon
eb75e394b3 Use Files::MemBuf for Bsa::MemoryInputStream base classe instead of making a duplicate (MemoryInputStreamBuf) 2021-11-20 11:12:08 +01:00
Cédric Mocquillon
40656b3135 Embed error marker in osgt format inside a string defined in misc/errorMarker.hpp.
Use the embed error marker we fail to load a mesh.
2021-11-20 11:12:08 +01:00
uramer
68963538ae Lua UI API 2021-11-18 15:19:54 +00:00
psi29a
41bd20e358 Merge branch 'bullet_shape_hash' into 'master'
Store BulletShape source file name and content hash

See merge request OpenMW/openmw!1379
2021-11-13 13:33:22 +00:00
elsid
d7041613ef
Store BulletShape source file name and content hash 2021-11-11 00:27:18 +01:00
Alexei Dobrohotov
5571099147 Load NiCollisionObject and bhkCollisionObject 2021-11-10 19:31:28 +03:00
elsid
9f808fbe3a
Move findPath-like navigator functions into a separate header 2021-11-06 00:34:06 +01:00
Petr Mikheev
9adc190209 Redesign LuaUtil::ScriptsContainer to work with ScriptsConfiguration 2021-10-26 21:32:48 +02:00
Fanael Linithien
07d505563e Remove non-existent file from CMakeLists 2021-10-23 01:38:32 +02:00
elsid
e5413c0664
Add functions to compress/decompress vector of bytes 2021-10-18 20:46:22 +02:00
AnyOldName3
9be606a40d Finish removing old Escape classes 2021-10-17 23:40:34 +01:00
elsid
046b5f83ee
Add ESM data loader
A component to load ESM content files with limited support for record types and
selection which of them to load. Supported record types are:
ACTI, CELL, CONT, DOOR, GMST, LAND, STAT.
2021-10-17 19:55:29 +02:00
elsid
c88367b6a6
Add sqlite3 helpers 2021-10-16 17:43:08 +02:00
AnyOldName3
1b83b08d80 Merge remote-tracking branch 'upstream/master' into detain-hash
Tests which no longer work are commented out.
Some of these don't work because they're effectively testing for the
presence of bugs in the old implementation.
Others don't work because we're no longer accidentally disabling the
boost::program_options feature where it generates an error if only part
of a token gets consumed.
These will be fixed by later commits.
2021-10-10 23:50:50 +01:00
AnyOldName3
e382f71aea Add implementation of config file parser lifted from Boost 2021-10-07 00:39:23 +01:00
elsid
b9825afb8a
Fix build with system static OpenSceneGraph
* Add dependency to libraries required by OSG but missing when linking with OSG
  system library.
* Use find_package for already defined dependencies.
2021-09-17 19:59:11 +02:00
pi03k
e4eeb9cce9 Remove 'no relevant classes' moc warning 2021-09-14 11:20:18 +02:00
elsid
605cb8db7c
Make sync terrain preloading sleep free
This reduces average time spent on in. 5 milliseconds as a base precision is
quite a lot considering that for 60 FPS frame time is 1000/16 = ~16.67 ms
when it's a cell loading frame and there is more important work to do rather
than sleeping.
2021-09-07 14:52:42 +02:00
elsid
b0f772af40
Define dependency to OSG plugins in one place
Each binary depending on components library requires OSG plugins to be linked.
Duplicating dependecies for each binary does not give benefits and brings
problems when new binary is added.
2021-09-06 22:44:52 +02:00
elsid
e9b8933b2f
Do no link binaries with Qt where it's not used
Define components_qt static library with all qt dependent components that also
depends on other components. Link only cs, wizard and launcher with qt
dependent components.
2021-08-20 19:02:09 +02:00
madsbuvi
41c08b1c3b Stereo friendly StateSetUpdater
(cherry picked from commit 496b3aef88b8fd867dcdd23a6ca43144573b1b2f)

Stereo friendly water

(cherry picked from commit 0e22c55e48a7f965367d3d430c1bef5357b22748)

Option to disable per view mapping.

Include memory header

De-hardcode settings and buffers.

formatting error

Update water.cpp (whitespace)

Update water.cpp (more whitespace)

include render order

c array -> c++ array
2021-07-26 14:01:02 +02:00
elsid
beeb882ea8
Do not use off mesh connections as a part of navmesh cache key
To reduce cache size and make it more flexible.

Adding off mesh connections to the navmesh is the last step of navmesh
generation and it's very fast comparing to other steps (microseconds vs
milliseconds). Having less cache size makes get and set operations almost 2x
times faster that also have an order of microseconds. So in total there is
no performance impact.
2021-07-14 12:19:17 +02:00
Petr Mikheev
702eb19271 Fixes and refactoring 2021-07-09 20:48:54 +02:00
Petr Mikheev
b53667d555 Queries. Data structures and lua bindings. 2021-07-09 20:03:27 +02:00
Petr Mikheev
479856f812 Add components/lua/scriptscontainer and components/esm/luascripts 2021-07-09 20:03:27 +02:00
Petr Mikheev
8dbaf6022c Add components/lua/serilalization 2021-07-09 20:03:27 +02:00
Petr Mikheev
4b068b27ca Add components/lua/luastate and components/lua/utilpackage 2021-07-09 20:03:27 +02:00
elsid
33aa4d0822
Move WriteScreenshotToFileOperation to components 2021-07-08 20:27:19 +02:00
elsid
81e569c3d9
Move OffMeshConnectionsManager implementation into cpp 2021-06-27 17:48:07 +02:00
AnyOldName3
081650a2e5 Integrate Base64 library with build 2021-05-17 23:00:23 +01:00
elsid
ec87b3f8f7
Remove redundant ChunkyTriMesh
This AABB tree required when need to filter out input mesh that has not
influence navmesh tile output. This filtering is already done before. Each
recast mesh corresponds to a single navmesh tile and has appropriate bounds.
2021-05-04 13:00:06 +02:00
Gleb Mazovetskiy
e3a6cb1695 Remove OsIdentity.cmake
Removes the OsIdentity.cmake file and uses a cross-compilation friendly
and OS-independent method of detecting system double-precision bullet
instead.
2021-05-03 00:08:47 +01:00
fredzio
6fd04cb8f6 Remove support for single-precision Bullet, fail during configuration instead of during linking. 2021-05-02 17:48:50 +02:00
elsid
3e67f5ffa5
Detect and ignore updates for oscillating objects
To avoid triggering NavMesh update when RecastMesh change should not change
NavMesh.

Based on the following assumption:
Given a set of transformations and a bounding shape for all these
tranformations, a new object transformation that does not change this
bounding shape also should not change navmesh if for all of this object
transformations resulting navmesh tiles are equivalent

The idea is to report back to RecastMeshManager all changes of NavMesh if there
are any assiciated with RecastMesh version. So we know the last time when
RecastMesh change resulted into the NavMesh change. When later report shows
that there was no NavMesh change for a new RecastMesh version we can assume
that any object transformation within the same bounding box should not change
NavMesh.
2021-04-18 23:00:13 +02:00
elsid
62f32f4543
Do not replace equivalent navmesh tiles 2021-04-18 20:04:41 +02:00
elsid
ab8d1c02d4
Set idle priority for navmesh generation thread
Support Linux, Windows, FreeBSD.
2021-04-14 21:39:06 +02:00
psi29a
cc6f08930b Merge branch 'alpha-meddling' into 'master'
Replace deprecated alpha test in shader visitor

Closes #4899

See merge request OpenMW/openmw!473
2021-03-13 08:13:19 +00:00
AnyOldName3
450b971bb0 Merge branch 'gl4es-patch' into 'master'
gl4es: Delay feature detection until a context exists

See merge request OpenMW/openmw!626
2021-03-10 19:01:39 +00:00
Gleb Mazovetskiy
455be9dbbb Fix linking with -DOPENMW_USE_SYSTEM_OSG=ON -DOSG_STATIC=ON
1. CMake's built-in OSG finder does not use pkgconfig, so we have to
   manually ensure the order is correct for inter-library dependencies.

   https://gitlab.kitware.com/cmake/cmake/-/issues/21701

2. OSG plugin pkgconfig files are missing dependencies on the underlying
   libraries (e.g. freetype, png, jpeg), so we have to link them manually.

   https://github.com/openscenegraph/OpenSceneGraph/issues/1052
2021-03-06 21:17:52 +00:00
Gleb Mazovetskiy
044e784072 gl4es: Delay feature detection until a context exists
gl4es feature detection does not work reliably with EGL.

If a context already exists, gl4es can instead reliably detect
the underlying GLES features from the context itself.

This requires gl4es to be configured with:

    -DNOEGL=ON -DNO_LOADER=ON -DNO_INIT_CONSTRUCTOR=ON

This also requires gl4es to have this fix: https://github.com/ptitSeb/gl4es/pull/271
2021-02-28 07:59:48 +00:00
psi29a
937549c99e Merge branch 'fix_still_actors' into 'master'
Make actor flee from a combat when cannot reach a target (#5851)

See merge request OpenMW/openmw!601
2021-02-26 23:25:05 +00:00
AnyOldName3
4f510d85ba Merge remote-tracking branch 'upstream/master' into alpha-meddling 2021-02-14 22:42:55 +00:00
elsid
8dba61f7ae
Use navmesh raycast to find reachable position around target 2021-02-14 04:14:22 +01:00