Commit graph

55 commits

Author SHA1 Message Date
goaaats
68656f2b40 TextureManagerPluginScoped must depend on TextureManager to ensure unload order 2025-07-03 15:08:31 +02:00
srkizer
e415699bb3
DrawListTextureWrap: use two textures (#2285)
Making premultiplied pixel data into straight alpha in-place using UAV
seems to be not working on older graphics cards. Now every instance of
DrawListTextureWrap keeps two GPU textures, where one keeps a
premultiplied data which will be written to using ImGui draw data and
read from to calculate straight alpha pixel data.
2025-05-29 17:06:48 +02:00
goaaats
bf491525f6 Upgrade cimgui, use custom FindWindowByName instead of hardcoded offset 2025-05-09 23:06:31 +02:00
srkizer
4dce0c00e8
Implement DrawListTextureWrap (#2036)
* Implement DrawListTextureWrap

* Fix unloading

* minor fixes

* Add CreateFromClipboardAsync

---------

Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2025-05-09 22:47:42 +02:00
goaaats
34679d085b Extract plugin to temp directory before copying to final location, some minor cleanup 2025-04-01 18:55:27 +02:00
goaaats
f94f03e114 Merge branch 'api12' 2025-03-26 20:44:48 +01:00
Blair
19ba6a961f
Switch INotificationManager and ITitleScreenMenu to use ISharedImmediateTexture (#1879)
* Switch INotificationManager and ITitleScreenMenu to use ISharedImmediateTexture #1879

* Remove SetIconTexture
Remove some remarks that no longer apply

* Cleanup StyleCop warnings
2025-03-26 20:36:18 +01:00
Kaz Wolfe
2176b32219
chore: Bump ClientStructs and make it build again 2025-03-24 13:25:13 -07:00
goaaats
3340bfd205 Remove confusing comment about IDisposable behavior from ISharedImmediateTexture, it no longer inherits from IDisposable 2025-02-26 21:09:15 +01:00
srkizer
74ab9191d3
Add ITextureProvider.ConvertToKernelTexture (#2003)
* Add ITextureProvider.ConvertToKernelTexture

Lets you obtain an instance of Kernel::Texture from IDalamudTextureWrap.

* Docs wip
2024-11-04 16:06:42 +01:00
srkizer
8822810229
DalamudAssetManager: avoid locks and lookups (#2015)
* 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.
2024-08-25 15:06:21 +02:00
srkizer
424f129969
TextureManager: cleanup shared textures off main thread periodically (#1984)
* 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
2024-08-04 13:31:08 +02:00
RyouBakura
def28b37c7
GetFromFile without FileInfo (#1913)
* GetFromFile without FileInfo

* Implement missing interface member
2024-07-24 20:07:23 +02:00
Soreepeong
1be5cd452d Make all TCS RunContinuationsAsynchronously 2024-07-21 20:49:41 +09:00
srkizer
b2089ab667
smh (#1921) 2024-07-11 10:32:42 +00:00
srkizer
823ec47d67
Support path substitution to filesystem file (#1920) 2024-07-11 09:44:22 +00:00
srkizer
336d85363e
Fix incorrect fixed usage, remove api9 safety code from UiBuilder (#1893)
* fix incorrect fixed usage

* UiBuilder: remove leftover api9 safety code
2024-07-04 12:02:37 +02:00
srkizer
7a90921358
ISIT: remove api9 compat, IDAM: make Empty4X4 transparent (#1877)
* Remove api9 compat from texture stuff

* Make Empty4X4 actually transparent
2024-07-03 18:51:23 +02:00
goat
f574f797a1 add ITextureProvider.TryGetFromGameIcon() 2024-07-01 14:36:51 +02:00
goat
b425bb3e49 fix a million warnings 2024-06-30 00:58:04 +02:00
goat
ad1a19000f throw less-generic exception if icon lookup failed 2024-06-29 19:06:23 +02:00
goat
a3a7acc45e add ITextureProvider.GetFromFile(FileInfo) 2024-06-29 18:02:11 +02:00
goat
1a490e5f21 add documentation note about preferring other APIs in ISharedImmediateTexture::RentAsync() 2024-06-29 11:44:15 +02:00
goat
7e397bef17 actually just move the language types, don't use the one from the common assembly 2024-06-29 01:26:29 +02:00
goat
b212b4e00a Revert "api10 todo: only use ClientLanguage from Dalamud.Common, move ToLumina() extension into Dalamud.Util"
This reverts commit 2e731b1eab.
2024-06-29 01:23:29 +02:00
goat
1d1b60b011 api10 todo: move IDalamudTextureWrap to Dalamud.Interface.Textures.TextureWraps 2024-06-29 00:45:16 +02:00
goat
1ad87989e0 api10 todo: remove public DalamudTextureWrap impl 2024-06-29 00:38:56 +02:00
goat
2e731b1eab api10 todo: only use ClientLanguage from Dalamud.Common, move ToLumina() extension into Dalamud.Util 2024-06-29 00:29:51 +02:00
Kaz Wolfe
28ff62e488
fix errors/warnings 2024-06-16 16:45:18 -07:00
KazWolfe
0c8c4bfdbf
chore: Remove the [InterfaceVersion] attribute (#1844) 2024-06-16 13:01:17 +02:00
srkizer
5365dd14d8
Add comments on caching (#1829) 2024-06-07 08:42:38 +02:00
Soreepeong
729795ff9e Move temp file gen for File.Replace to separate file 2024-06-05 00:29:15 +09:00
Soreepeong
e144956a48 Add notes on CreateTextureAsync 2024-06-05 00:14:36 +09:00
Soreepeong
3f138c2600 Make IsMainThreadInPresent and CumulativePresentCalls clearer 2024-06-05 00:11:33 +09:00
Soreepeong
20717cce3d more 2024-05-21 09:27:51 +09:00
Soreepeong
8c7771bf7d Merge branch 'apiX' into feature/itextureprovider-updates 2024-05-12 22:17:32 +09:00
srkizer
55bd845a63
Add IconTexture/Wrap to INotification (#1738) (#1739)
* Add IconTexture/Wrap to INotification (#1738)

Notification record and IActiveNotification interface now supports
setting or updating the texture wraps being used, and SetIconTexture has
gotten more overloads to support leaveOpen mechanism that can commonly
be found with Stream wrappers.

ImGui widget is updated to support testing setting "leaveOpen" and
updating "IconTexture" property via setter, making it possible to check
whether IDTW.Dispose is being called under given conditions.

Some changes to doccomments are made.

* typo
2024-03-22 14:47:50 +01:00
Soreepeong
70eecdaaef more 2024-03-05 21:04:20 +09:00
Soreepeong
9ba0a297c9 Add texture vram usage estimation 2024-03-05 01:53:31 +09:00
Soreepeong
e9b903b2a7 Track shared textures 2024-03-05 01:37:46 +09:00
Soreepeong
7f12e3f3da Assign debug names for textures 2024-03-05 01:22:16 +09:00
Soreepeong
6a0f774625 Add texture leak tracker 2024-03-05 01:06:02 +09:00
Soreepeong
2572f24e08 More cleanup 2024-03-04 22:46:38 +09:00
Soreepeong
0a658477c6 cleanup 2024-03-04 21:13:00 +09:00
Soreepeong
5fd7457df4 Add ForwardingTextureWrap 2024-03-03 22:24:15 +09:00
Soreepeong
6c8c42ca05 Cleanup 2024-03-03 21:46:49 +09:00
Soreepeong
bb76f0eea4 fix 2024-03-03 21:04:51 +09:00
Soreepeong
5ad8edbc04 Move save get/save functions to ITextureReadbackProvider 2024-03-03 21:00:37 +09:00
Soreepeong
fa5e708a43 Cleanup and reformat 2024-03-03 20:51:50 +09:00
Soreepeong
858d27ab8e Fix namespace 2024-03-03 20:44:49 +09:00