Update Obtaining the Oodle library

Lucas Schwiderski 2025-03-13 08:29:48 +00:00
parent ef512b5f33
commit de2ed4ab99
Signed by: Forgejo (git.sclu1034.dev)
GPG key ID: B1C9C29730D3D366

@ -1,4 +1,4 @@
Darktide ships with a `.dll` for Oodle 2.8, and that could be linked to for DTMT. However, that creates two problems: Darktide ships with a `.dll` for Oodle 2.8, and DTMT could link to that at runtime. However, that creates two problems:
* It's only available on Windows. Linux users would have to run everything through Wine. * It's only available on Windows. Linux users would have to run everything through Wine.
* DTMT needs to know the path to the library file. It's hard to make automatic detection reliable, and it's confusing for people to specify it manually. * DTMT needs to know the path to the library file. It's hard to make automatic detection reliable, and it's confusing for people to specify it manually.
@ -8,13 +8,13 @@ To compile for Windows (native or cross), a `oo2core_win_release.lib` file is ne
## Generating a `.lib` file ## Generating a `.lib` file
A `.lib` file can be generated from a `.dll` file. The MSVC command line tools (from the Visual Studio installer) are required. A `.lib` file can be generated from a `.dll` file. The MSVC command line tools (from the Visual Studio installer) are required. Their tools can usually be found at `C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\<some_version>\bin`.
1. `dumpbin /EXPORTS oo2core_win_release.dll > oo2core_win_release.def` 1. `dumpbin /EXPORTS oo2core_9_win64.dll > oo2core_win64.def`
2. Add a line `EXPORTS` at the top of the `.def` file 2. Add a line `EXPORTS` at the top of the `.def` file
3. (Optional) Remove unused function definitions 3. (Optional) Remove unused function definitions
4. `lib /def:oo2core_win_release.def /machine:x64 /out:oo2core_win_release.lib` 4. `lib /def:oo2core_win64.def /machine:x64 /out:oo2core_win64.lib`
## Acquiring a `.lib` or `.a` file from Unreal Engine ## Acquiring a `.lib` or `.a` file from Unreal Engine
The Unreal Engine source code (currently v5.0.3) includes a version of the Oodle data compression library (at `Engine/Source/Runtime/OodleDataCompression/Sdks/2.9.5`). While this is a never version than the one Darktide uses, they are ABI compatible. The Unreal Engine source code (currently v5.0.3) includes a version of the Oodle data compression library (at `Engine/Source/Runtime/OodleDataCompression/Sdks/2.9.5`). While this is a never version than the one Darktide uses, they are ABI compatible. Both `.lib` and `.a` files can be found here.