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
* Changed DtrBar to use ReaderWriterLockSlim so that there exists only one storage of entries, preventing possible desync.
* DtrBarEntry will now hold a reference to the LocalPlugin that created the entry, so that DtrBarPluginScoped can defer plugin related handling to the main service.
* Marked DtrBarEntry class itself to be turned internal in API 11.
* Made IDtrBar.Entries return an immutable copy of underlying list of DtrBar entries, that will be freshly created whenever the list changes.
* Changed ReShade w/o addon support detection to compare the name of the
signer to the string "ReShade", so that any false positives stemming
from use of other injector do not trigger warnings.
* Changed main SwapChain detection to be done by comparing the HWND of
window that the SwapChain is attached to.