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. |
||
|---|---|---|
| .github | ||
| .nuke | ||
| build | ||
| Dalamud | ||
| Dalamud.Boot | ||
| Dalamud.Common | ||
| Dalamud.CorePlugin | ||
| Dalamud.Injector | ||
| Dalamud.Injector.Boot | ||
| Dalamud.Test | ||
| DalamudCrashHandler | ||
| docs | ||
| lib | ||
| targets | ||
| tools | ||
| .editorconfig | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| build.cmd | ||
| build.ps1 | ||
| build.sh | ||
| CreateHashList.ps1 | ||
| Dalamud.sln | ||
| Dalamud.sln.DotSettings | ||
| Directory.Build.props | ||
| docfx.json | ||
| filterConfig.yml | ||
| global.json | ||
| index.md | ||
| LICENSE | ||
| README.md | ||
| sign.ps1 | ||
| stylecop.json | ||
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 |