Commit graph

116 commits

Author SHA1 Message Date
Soreepeong
0aa75306d4 fixese 2024-03-02 07:50:37 +09:00
Soreepeong
5367d288d6 Use WIC to implement ITP.SaveAsImageFormatToStreamAsync 2024-03-02 06:57:12 +09:00
Soreepeong
1ae11440aa Add ITextureProvider.CreateFromExistingTextureAsync 2024-03-02 01:41:11 +09:00
Soreepeong
ca986b46a2 cleanup 2024-02-28 21:17:50 +09:00
Soreepeong
cc756c243c Add ITextureProvider.GetFromManifestResource(Assembly,string) 2024-02-28 21:04:57 +09:00
Soreepeong
f8492dc06b changes 2024-02-28 19:16:14 +09:00
Soreepeong
71b84bcf40 Move all texture loading functionalities from IM to TM 2024-02-28 17:43:24 +09:00
Soreepeong
3bf907002f Remove CancellationToken from GetFromRaw(Sync) 2024-02-28 17:43:24 +09:00
Soreepeong
ea633cd876 Implement texture load throttling & cancellable async loads 2024-02-28 17:43:24 +09:00
Soreepeong
e12b2f7803 Make state+texture retrieval done with one API call 2024-02-28 17:43:24 +09:00
Soreepeong
71bb02347f Update docs 2024-02-28 17:43:24 +09:00
Soreepeong
5eadfc1b4d Add state fetchers 2024-02-28 17:43:24 +09:00
Soreepeong
3fe2920e92 Update ITextureProvider 2024-02-28 17:29:23 +09:00
Soreepeong
a3217bb86d Remove InitialiationTask from interface 2024-02-21 16:34:53 +09:00
Soreepeong
c27422384f IGameConfig: fix load-time race condition
As some public properties of `IGameConfig` are being set on the first
`Framework` tick, there was a short window that those properties were
null, which goes against the interface declaration.

This commit fixes that, by making those properties block for the full
initialization of the class.

A possible side effect is that a plugin that is set to block the game
from loading until it loads will now hang the game if it tries to access
the game configuration from its constructor, instead of throwing a
`NullReferenceException`. As it would mean that the plugin was buggy at
the first place and it would have sometimes failed to load anyway, it
might as well be a non-breaking change.
2024-02-20 15:37:54 +09:00
Soreepeong
e594d59986 Enable tracking only when there exists a subscriber 2023-12-02 12:58:55 +09:00
Soreepeong
35b0d53e80 Add typed event variants 2023-12-02 10:59:13 +09:00
Soreepeong
1039c1eb8a Cleanup 2023-12-02 10:22:07 +09:00
Soreepeong
6dd34ebda4 support merge/split events 2023-12-01 22:37:24 +09:00
Soreepeong
35f4ff5c94 wip 2023-12-01 21:51:09 +09:00
Soreepeong
34e3adb3f2 wip; needs testing and more thinking 2023-12-01 18:10:43 +09:00
MidoriKami
7c6f98dc9f Proposed API Surface 2023-11-30 22:18:33 -08:00
Soreepeong
5204bb723d Optimizations 2023-11-30 20:42:34 +09:00
MidoriKami
92f4df625f [GameInventory] Service Prototype 2023-11-30 20:22:08 +09:00
MidoriKami
e12ec0ceff
Add FrameworkPluginScoped (#1442)
Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>
2023-10-21 18:06:02 -07:00
MidoriKami
0f349bb3dd
IChatGui Add Readonly RegisteredLinkHandlers (#1487) 2023-10-15 12:19:14 +02:00
KazWolfe
2083ccda00
Remove internal dependencies on opcodes (#1464)
- Removes the opcode lists from internal API entirely
- Move NetworkHandlers to use packet handler sigs
- Remove opcode data from NetworkMonitorWidget
2023-10-05 17:01:03 +00:00
KazWolfe
34c05adeb1
Remove IPluginLog#Logger for now (#1428)
- Causes issues with mocking.
2023-09-23 19:58:21 -07:00
goat
8527e035f1
chore: remove refcounting, keepalive logic from TextureManager, remove scoped service
Makes this whole thing a lot simpler to use and easier to understand.
2023-09-23 17:40:49 +02:00
goat
c767971a36
move around new Addon services a bit to match folder structure 2023-09-23 13:09:43 +02:00
goat
6fbcd0e0e4
chore: don't use ImGuiScene.TextureWrap for any external API, IDalamudTextureWrap does not inherit from ImGuiScene.TextureWrap any longer 2023-09-23 13:05:19 +02:00
goat
af52da06b0
merge master 2023-09-23 11:22:50 +02:00
goat
7a182b6ef7
Merge branch 'v9' into ihookprovider 2023-09-23 10:57:09 +02:00
goat
c3dd2364bb
Merge pull request #1415 from MidoriKami/AddonLifecycle_IAddonArgs 2023-09-23 10:50:15 +02:00
goat
1304c54eff
docs fixed 2023-09-23 10:39:29 +02:00
Kaz Wolfe
d29422bc50
Add IPluginLog#Info
- Shorthand for information log lines, because typing out `Information` is too much.
2023-09-22 23:22:59 -07:00
MidoriKami
c6c28c6e3f Change default name so auto generate stops complaining about improper casing. 2023-09-22 21:12:44 -07:00
MidoriKami
fd3bd6dc5b Use abstract class instead of interface 2023-09-22 12:17:54 -07:00
MidoriKami
43abb12710
Add GameConfigPluginScoped (#1383)
* Add GameConfigPluginScoped

* Proposed Resolution to sub-object events

* Nullify delegates to prevent memory leaks
2023-09-21 21:55:56 -07:00
MidoriKami
b742abe77f
Add ClientStatePluginScoped (#1384)
* Add ClientStatePluginScoped

* Restore InvokeSafely

* Add InvokeSafely for basic Action types.

* Set delegates to null to prevent leaking memory

* Resolve Merge
2023-09-21 21:55:16 -07:00
MidoriKami
26838d9f5c Auto generate paramkeys and return handles to events. 2023-09-21 20:47:49 -07:00
MidoriKami
0636a03e41 Include argument data in event information. 2023-09-21 15:26:08 -07:00
goat
eb2a5f36f9
fix spelling inconsistency 2023-09-21 22:11:18 +02:00
goat
e31234ffec
prefix methods with Hook to improve clarity 2023-09-21 22:09:38 +02:00
goat
173e9a3144
IHookProvider => IGameInteropProvider 2023-09-21 22:07:09 +02:00
goat
a59875bb77
Merge branch 'v9' into ihookprovider 2023-09-21 21:42:08 +02:00
MidoriKami
6f40449ab3 Adjust Namespaces 2023-09-20 09:46:16 -07:00
MidoriKami
674f02136b [AddonEventManager] Properly track and cleanup events.
Also replaced DTR hooks with AddonLifecycle events.
2023-09-19 17:16:55 -07:00
github-actions[bot]
33868087ed Merge remote-tracking branch 'origin/master' into v9-rollup 2023-09-17 21:52:26 +00:00
goat
40a8e607a8
Merge pull request #1370 from MidoriKami/AddonLifecycle_Enhancements 2023-09-17 23:52:05 +02:00