No longer requires hook and main thread requirements on compiling macro
strings.
Needs lookup table fixing on Lumina; using reflection to fix for the
time being.
This updates the Addon Inspector with lots of new features and functionality.
- Features from Caraxi's fork of UiDebug have been incorporated, such as the Element Selector UI and address search.
- Any addon or node can now pop out into its own window.
- Revised the visual style of node field/property information.
- Color values are now visually displayed.
- Any nodes or components that are referenced by fields within the addon will now show that field name in the inspector.
- Added editors for nodes, allowing complete control over most of their properties.
- Improved texture display for Image nodes (and Image node variant types). The active part of the texture is now highlighted, and the boundaries of other parts can be shown via mouseover.
- Highlighting of node bounds onscreen is now more accurate, factoring in rotation (including when using the Element Selector).
- Display of animation timelines has been revamped, showing a table of keyframes for each animation.
A standalone SamplePlugin-based version is available here: https://github.com/ItsBexy/UiDebug2
* Made DalamudAsset-to-something tables into arrays from dictionaries.
Number of items in the DalamudAsset enum aren't many, and the numbers
are small enough that implementing lookup tables as arrays aren't
wasting much memory space.
* Removed locking from asset accessors, while still guaranteeing that
the load operation happens only once per asset.
* ISharedImmediateTexture: made it not even access assets if textures
are available.
ServiceScope.Dispose was not waiting for scoped services to complete
disposing. This had an effect of letting a new plugin instance register
a DtrBar entry before previous plugin instance's entry got unregistered.
This change also cleans up unloading procedure in LocalPlugin.
* prelim uld data display
* change uld list to a string array
* fix some uld parts not having their texture id set.
* update uld browser to use themes and get locations from sig scanning
* undo ClientStructs change during rebase
* fix capitalization during rebase
UIColor sheet has color sets per theme. Updated `UIColorWidget` to
reflect that, and added `SeStringDrawParams.ThemeIndex` to let users
choose which theme color set to use while drawing SeString from Dalamud.
* TextureManager: cleanup shared textures off main thread periodically
The cleanup function was already written in a threadsafe way. This
commit moves that functionality to a background low priority thread, and
does that every 60 frames.
* fix
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.
* Add coloring options
* Add link support
* simplify
* fixes
* Prevent EncodeString from causing crashes
* Fix link range application and add link example
* Fix test widget
* Make DalamudLinkPayload backward compatible
* make it better to use
* make it better to use
* Mark SeString rendering functions experimental via comments
* rename
* Simplify
* Make sestring draw functions take in draw params
* Improvements