forked from Misaki/GhostEngine
feat(nativegen)!: refactor to struct-based native wrappers
Major overhaul of native wrapper generation for ufbx and nvtt. Replaces all hand-written and class-based wrappers with auto-generated partial struct wrappers that directly expose native API methods via pointers. Introduces a new JSON-driven configuration system using "remaps" and "actions" for flexible parameter/return mapping and method routing. Removes legacy config sections and helper classes, focusing solely on method wrappers. Updates all usages and tests to use the new pointer-based API. Cleans up obsolete code and ensures resource management is handled via struct Dispose methods. The result is a thinner, more direct, and maintainable interop layer. BREAKING CHANGE: All managed wrapper classes and helpers are removed in favor of struct-based pointer wrappers. API usage and resource management patterns have changed.
This commit is contained in:
133
src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_anim.nativegen.cs
Normal file
133
src/ThridParty/Ghost.Ufbx/Wrapper/ufbx_anim.nativegen.cs
Normal file
@@ -0,0 +1,133 @@
|
||||
// <auto-generated>
|
||||
// This file is generated by Ghost.NativeWrapperGen. Do not edit manually.
|
||||
// </auto-generated>
|
||||
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace Ghost.Ufbx;
|
||||
|
||||
public unsafe partial struct ufbx_anim
|
||||
{
|
||||
// From: ufbx_evaluate_prop_len(ufbx_anim*, ufbx_element*, sbyte*, nuint, double)
|
||||
public ufbx_prop evaluate_prop_len(ufbx_element* element, ReadOnlySpan<byte> name, double time)
|
||||
{
|
||||
fixed (byte* pname = name)
|
||||
{
|
||||
return Api.ufbx_evaluate_prop_len(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
element,
|
||||
(sbyte*)pname,
|
||||
(nuint)name.Length,
|
||||
time);
|
||||
}
|
||||
}
|
||||
|
||||
// From: ufbx_evaluate_prop(ufbx_anim*, ufbx_element*, sbyte*, double)
|
||||
public ufbx_prop evaluate_prop(ufbx_element* element, sbyte* name, double time)
|
||||
{
|
||||
return Api.ufbx_evaluate_prop(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
element,
|
||||
name,
|
||||
time);
|
||||
}
|
||||
|
||||
// From: ufbx_evaluate_prop_flags_len(ufbx_anim*, ufbx_element*, sbyte*, nuint, double, uint)
|
||||
public ufbx_prop evaluate_prop_flags_len(ufbx_element* element, ReadOnlySpan<byte> name, double time, uint flags)
|
||||
{
|
||||
fixed (byte* pname = name)
|
||||
{
|
||||
return Api.ufbx_evaluate_prop_flags_len(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
element,
|
||||
(sbyte*)pname,
|
||||
(nuint)name.Length,
|
||||
time,
|
||||
flags);
|
||||
}
|
||||
}
|
||||
|
||||
// From: ufbx_evaluate_prop_flags(ufbx_anim*, ufbx_element*, sbyte*, double, uint)
|
||||
public ufbx_prop evaluate_prop_flags(ufbx_element* element, sbyte* name, double time, uint flags)
|
||||
{
|
||||
return Api.ufbx_evaluate_prop_flags(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
element,
|
||||
name,
|
||||
time,
|
||||
flags);
|
||||
}
|
||||
|
||||
// From: ufbx_evaluate_props(ufbx_anim*, ufbx_element*, double, ufbx_prop*, nuint)
|
||||
public ufbx_props evaluate_props(ufbx_element* element, double time, ufbx_prop* buffer, nuint buffer_size)
|
||||
{
|
||||
return Api.ufbx_evaluate_props(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
element,
|
||||
time,
|
||||
buffer,
|
||||
buffer_size);
|
||||
}
|
||||
|
||||
// From: ufbx_evaluate_props_flags(ufbx_anim*, ufbx_element*, double, ufbx_prop*, nuint, uint)
|
||||
public ufbx_props evaluate_props_flags(ufbx_element* element, double time, ufbx_prop* buffer, nuint buffer_size, uint flags)
|
||||
{
|
||||
return Api.ufbx_evaluate_props_flags(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
element,
|
||||
time,
|
||||
buffer,
|
||||
buffer_size,
|
||||
flags);
|
||||
}
|
||||
|
||||
// From: ufbx_evaluate_transform(ufbx_anim*, ufbx_node*, double)
|
||||
public ufbx_transform evaluate_transform(ufbx_node* node, double time)
|
||||
{
|
||||
return Api.ufbx_evaluate_transform(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
node,
|
||||
time);
|
||||
}
|
||||
|
||||
// From: ufbx_evaluate_transform_flags(ufbx_anim*, ufbx_node*, double, uint)
|
||||
public ufbx_transform evaluate_transform_flags(ufbx_node* node, double time, uint flags)
|
||||
{
|
||||
return Api.ufbx_evaluate_transform_flags(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
node,
|
||||
time,
|
||||
flags);
|
||||
}
|
||||
|
||||
// From: ufbx_evaluate_blend_weight(ufbx_anim*, ufbx_blend_channel*, double)
|
||||
public float evaluate_blend_weight(ufbx_blend_channel* channel, double time)
|
||||
{
|
||||
return Api.ufbx_evaluate_blend_weight(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
channel,
|
||||
time);
|
||||
}
|
||||
|
||||
// From: ufbx_evaluate_blend_weight_flags(ufbx_anim*, ufbx_blend_channel*, double, uint)
|
||||
public float evaluate_blend_weight_flags(ufbx_blend_channel* channel, double time, uint flags)
|
||||
{
|
||||
return Api.ufbx_evaluate_blend_weight_flags(
|
||||
(ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
|
||||
channel,
|
||||
time,
|
||||
flags);
|
||||
}
|
||||
|
||||
// From: ufbx_free_anim(ufbx_anim*)
|
||||
public void free()
|
||||
{
|
||||
Api.ufbx_free_anim((ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
|
||||
}
|
||||
|
||||
// From: ufbx_retain_anim(ufbx_anim*)
|
||||
public void retain()
|
||||
{
|
||||
Api.ufbx_retain_anim((ufbx_anim*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user