Add ImAnim bindings

This commit is contained in:
Haselnussbomber 2025-12-08 21:25:32 +01:00
parent e8485dee25
commit 2b5e2893c5
No known key found for this signature in database
GPG key ID: BB905BB49E7295D1
43 changed files with 4852 additions and 3 deletions

View file

@ -0,0 +1,24 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimAnchorSpace
{
/// <summary>
/// ImGui::GetContentRegionAvail()
/// </summary>
WindowContent,
/// <summary>
/// ImGui::GetWindowSize()
/// </summary>
Window,
/// <summary>
/// ImGui::GetWindowViewport()->Size
/// </summary>
Viewport,
/// <summary>
/// ImGui::GetItemRectSize()
/// </summary>
LastItem,
}

View file

@ -0,0 +1,29 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimColorSpace
{
/// <summary>
/// blend in sRGB (not physically linear)
/// </summary>
Srgb,
/// <summary>
/// sRGB<->linear, blend in linear, back to sRGB
/// </summary>
SrgbLinear,
/// <summary>
/// blend H/S/V (hue shortest arc), keep A linear
/// </summary>
Hsv,
/// <summary>
/// sRGB<->OKLAB, blend in OKLAB, back to sRGB
/// </summary>
Oklab,
/// <summary>
/// sRGB<->OKLCH (cylindrical OKLAB), blend in OKLCH, back to sRGB
/// </summary>
Oklch,
}

View file

@ -0,0 +1,19 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimDirection
{
/// <summary>
/// play forward
/// </summary>
Normal,
/// <summary>
/// play backward
/// </summary>
Reverse,
/// <summary>
/// ping-pong
/// </summary>
Alternate,
}

View file

@ -0,0 +1,8 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimEaseStepsMode
{
End,
Start,
Both,
}

View file

@ -0,0 +1,70 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimEaseType
{
Linear,
InQuad,
OutQuad,
InOutQuad,
InCubic,
OutCubic,
InOutCubic,
InQuart,
OutQuart,
InOutQuart,
InQuint,
OutQuint,
InOutQuint,
InSine,
OutSine,
InOutSine,
InExpo,
OutExpo,
InOutExpo,
InCirc,
OutCirc,
InOutCirc,
/// <summary>
/// p0 = overshoot
/// </summary>
InBack,
/// <summary>
/// p0 = overshoot
/// </summary>
OutBack,
/// <summary>
/// p0 = overshoot
/// </summary>
InOutBack,
/// <summary>
/// p0 = amplitude, p1 = period
/// </summary>
InElastic,
/// <summary>
/// p0 = amplitude, p1 = period
/// </summary>
OutElastic,
/// <summary>
/// p0 = amplitude, p1 = period
/// </summary>
InOutElastic,
InBounce,
OutBounce,
InOutBounce,
/// <summary>
/// p0 = steps (>=1), p1 = 0:end 1:start 2:both
/// </summary>
Steps,
/// <summary>
/// p0=x1 p1=y1 p2=x2 p3=y2
/// </summary>
CubicBezier,
/// <summary>
/// p0=mass p1=stiffness p2=damping p3=v0
/// </summary>
Spring,
/// <summary>
/// User-defined easing function (use iam_ease_custom_fn)
/// </summary>
Custom,
}

View file

@ -0,0 +1,24 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimNoiseType
{
/// <summary>
/// Classic Perlin noise
/// </summary>
Perlin,
/// <summary>
/// Simplex noise (faster, fewer artifacts)
/// </summary>
Simplex,
/// <summary>
/// Value noise (blocky)
/// </summary>
Value,
/// <summary>
/// Worley/cellular noise
/// </summary>
Worley,
}

View file

@ -0,0 +1,19 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimPolicy
{
/// <summary>
/// smooth into new target
/// </summary>
Crossfade,
/// <summary>
/// snap to target
/// </summary>
Cut,
/// <summary>
/// queue one pending target
/// </summary>
Queue,
}

View file

@ -0,0 +1,9 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimResult
{
Ok,
ErrNotFound,
ErrBadArg,
ErrNoMem,
}

View file

@ -0,0 +1,29 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimRotationMode
{
/// <summary>
/// Shortest path (default) - never rotates more than 180 degrees
/// </summary>
Shortest,
/// <summary>
/// Longest path - always takes the long way around
/// </summary>
Longest,
/// <summary>
/// Clockwise - always rotates clockwise (positive direction)
/// </summary>
Cw,
/// <summary>
/// Counter-clockwise - always rotates counter-clockwise
/// </summary>
Ccw,
/// <summary>
/// Direct lerp - no angle unwrapping, can cause spinning for large deltas
/// </summary>
Direct,
}

View file

@ -0,0 +1,19 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimTextPathAlign
{
/// <summary>
/// Text starts at path start (or offset)
/// </summary>
Start,
/// <summary>
/// Text centered on path
/// </summary>
Center,
/// <summary>
/// Text ends at path end
/// </summary>
End,
}

View file

@ -0,0 +1,59 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimTextStaggerEffect
{
/// <summary>
/// No effect (instant appear)
/// </summary>
None,
/// <summary>
/// Fade in alpha
/// </summary>
Fade,
/// <summary>
/// Scale from center
/// </summary>
Scale,
/// <summary>
/// Slide up from below
/// </summary>
SlideUp,
/// <summary>
/// Slide down from above
/// </summary>
SlideDown,
/// <summary>
/// Slide in from right
/// </summary>
SlideLeft,
/// <summary>
/// Slide in from left
/// </summary>
SlideRight,
/// <summary>
/// Rotate in
/// </summary>
Rotate,
/// <summary>
/// Bounce in with overshoot
/// </summary>
Bounce,
/// <summary>
/// Wave motion (continuous)
/// </summary>
Wave,
/// <summary>
/// Typewriter style (instant per char)
/// </summary>
Typewriter,
}

View file

@ -0,0 +1,44 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimVariationMode
{
/// <summary>
/// No variation
/// </summary>
None,
/// <summary>
/// Add amount each iteration
/// </summary>
Increment,
/// <summary>
/// Subtract amount each iteration
/// </summary>
Decrement,
/// <summary>
/// Multiply by factor each iteration
/// </summary>
Multiply,
/// <summary>
/// Random in range [-amount, +amount]
/// </summary>
Random,
/// <summary>
/// Random in range [0, amount]
/// </summary>
RandomAbs,
/// <summary>
/// Alternate +/- each iteration
/// </summary>
PingPong,
/// <summary>
/// Use custom callback
/// </summary>
Callback,
}

View file

@ -0,0 +1,24 @@
namespace Dalamud.Bindings.ImAnim;
public enum ImAnimWaveType
{
/// <summary>
/// Smooth sine wave
/// </summary>
Sine,
/// <summary>
/// Triangle wave (linear up/down)
/// </summary>
Triangle,
/// <summary>
/// Sawtooth wave (linear up, instant reset)
/// </summary>
Sawtooth,
/// <summary>
/// Square wave (on/off pulse)
/// </summary>
Square,
}