FFXIV plugin framework and API
Find a file
srkizer 23a2bd6228
Fix ImDrawList::AddImageRounded (#1994)
The function makes an assumption that there exists 1 font atlas texture,
so that `ImDrawList._Data->TexIdCommon` ==
`ImDrawList._CmdHeader.TextureId`. Since we support multiple font atlas
textures, that assumption is no longer true and
`ImDrawList::AddConvexPolyFilled` will create a new draw command as
needed, giving `ImGui::ShadeVertsLinearUV` a clean draw command to work
with.

This workaround forcefully sets *the* font atlas texture to be the
texture the user is trying to draw for the duration of drawing polygons
and shading those vertices again, so that no draw command change
happens. Once the operation is done, font atlas texture is reverted back
to what it was.

This fix is done without thread safety concerns, but an `ImDrawList`
should not be touched from multiple threads at a single time, so this is
fine.
2024-08-03 09:51:34 -07:00
.github fix/ci: don't reference a non-existent env var (#1975) 2024-07-25 21:22:54 +02:00
.nuke Reapply "emit compiler generated files for docs builds" 2024-06-29 15:30:41 +02:00
build enable binary formatter in nuke project 2024-06-29 21:22:30 +02:00
Dalamud Fix ImDrawList::AddImageRounded (#1994) 2024-08-03 09:51:34 -07:00
Dalamud.Boot LoadingDialog: support localization, remove winforms, prevent invalid thread association errors 2024-07-21 18:41:51 +09:00
Dalamud.Common boot: implement --unhandled-exception=stalldebug (#1690) 2024-04-20 21:20:11 -07:00
Dalamud.CorePlugin also upgrade CorePlugin 2024-07-10 23:33:13 +02:00
Dalamud.Injector logging: limit main log file size to 100mb 2024-07-19 18:50:15 +02:00
Dalamud.Injector.Boot boot: don't link nethost.dll implicitly 2024-07-17 22:54:34 +02:00
Dalamud.Test actually just move the language types, don't use the one from the common assembly 2024-06-29 01:26:29 +02:00
DalamudCrashHandler crashhandler: immediately terminate the game in release mode 2024-06-17 21:23:31 +02:00
docs docs: remove from this repo, add redirect 2024-03-22 21:35:37 +01:00
lib Update ClientStructs (#1989) 2024-08-01 17:39:59 +00:00
targets upgrade packager version in Dalamud.Plugin.targets 2024-06-29 00:10:00 +02:00
tools enable some string BannedApis 2024-07-11 00:20:00 +02:00
.editorconfig Prevent end comment aligning (Resharper/SA conflict) 2023-12-08 23:20:05 +09:00
.gitattributes Initial commit 2019-09-21 22:29:38 +09:00
.gitignore Initial commit 2019-09-21 22:29:38 +09:00
.gitmodules [FIX] Remove the .git suffix from CS submodule (#1773) 2024-04-17 17:23:22 +02:00
build.cmd Magic the magic happen 2021-07-11 16:32:32 -04:00
build.ps1 Magic the magic happen 2021-07-11 16:32:32 -04:00
build.sh Remove EnableWindowsTargeting from build.sh's run step (#1633) 2024-02-07 10:37:55 -08:00
CreateHashList.ps1 Magic the magic happen 2021-07-11 16:32:32 -04:00
Dalamud.sln add solution-wide code analysis config 2024-07-11 00:14:15 +02:00
Dalamud.sln.DotSettings chore: Remove the [InterfaceVersion] attribute (#1844) 2024-06-16 13:01:17 +02:00
Directory.Build.props enable some string BannedApis 2024-07-11 00:20:00 +02:00
docfx.json ignore CS for docs altogether, for now 2024-06-30 01:28:52 +02:00
filterConfig.yml docs: exclude SDL2, Dalamud.Test, Dalamud.Interface.Internal, Dalamud.Game.Internal 2021-12-02 22:36:12 +01:00
global.json Merge remote-tracking branch 'origin/master' into net8-rollup 2023-11-19 12:32:38 +00:00
index.md docs: regenerate, include docfx config 2020-02-14 20:24:41 +09:00
LICENSE Update License to AGPL 3.0 or Later (#1373) 2023-09-19 23:11:23 +02:00
README.md change docs link in readme 2024-03-22 21:42:27 +01:00
sign.ps1 chore: codesigning for releases 2023-06-29 13:29:35 +02:00
stylecop.json Magic the magic happen 2021-07-11 16:32:32 -04:00

Dalamud Actions Status Discord Shield

Dalamud

Dalamud is a plugin development framework for FINAL FANTASY XIV that provides access to game data and native interoperability with the game itself to add functionality and quality-of-life.

It is meant to be used in conjunction with FFXIVQuickLauncher, which manages and launches Dalamud for you. It is generally not recommended for users to try to run Dalamud manually as there are multiple dependencies and assumed folder paths.

Hold Up!

If you are just trying to use Dalamud, you don't need to do anything on this page - please download XIVLauncher from its official page and follow the setup instructions.

Plugin development

Dalamud features a growing API for in-game plugin development with game data and chat access and overlays. Please see our Developer FAQ and the API documentation for more details.

If you need any support regarding the API or usage of Dalamud, please join our discord server.


Thanks to Mino, whose work has made this possible!

Components & Pipeline

These components are used in order to load Dalamud into a target process. Dalamud can be loaded via DLL injection, or by rewriting a process' entrypoint.

Name Purpose
Dalamud.Injector.Boot (C++) Loads the .NET Core runtime into a process via hostfxr and kicks off Dalamud.Injector
Dalamud.Injector (C#) Performs DLL injection on the target process
Dalamud.Boot (C++) Loads the .NET Core runtime into the active process and kicks off Dalamud, or rewrites a target process' entrypoint to do so
Dalamud (C#) Core API, game bindings, plugin framework
Dalamud.CorePlugin (C#) Testbed plugin that can access Dalamud internals, to prototype new Dalamud features

Branches

We are currently working from the following branches.

Name API Level Purpose .NET Version Track
master 9 Current release branch .NET 8.0.0 (November 2023) Release & Staging
api10 10 Next major version, slated for release alongside Patch 7.0 .NET 8.0.0 (November 2023) api10

Final Fantasy XIV © 2010-2021 SQUARE ENIX CO., LTD. All Rights Reserved. We are not affiliated with SQUARE ENIX CO., LTD. in any way.