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:
2026-03-15 20:48:54 +09:00
parent 3e4084c42a
commit 6cadd8edeb
278 changed files with 5387 additions and 12057 deletions

View File

@@ -0,0 +1,212 @@
// <auto-generated>
// This file is generated by Ghost.NativeWrapperGen. Do not edit manually.
// </auto-generated>
namespace Ghost.Nvtt;
public unsafe partial struct NvttCPUInputBuffer : System.IDisposable
{
// From: nvttDestroyCPUInputBuffer(NvttCPUInputBuffer*)
public void Dispose()
{
Api.nvttDestroyCPUInputBuffer((NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
}
// From: nvttCPUInputBufferNumTiles(NvttCPUInputBuffer*)
public int NumTiles()
{
return Api.nvttCPUInputBufferNumTiles((NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
}
// From: nvttCPUInputBufferTileSize(NvttCPUInputBuffer*, int*, int*)
public void TileSize(int* tile_w, int* tile_h)
{
Api.nvttCPUInputBufferTileSize(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
tile_w,
tile_h);
}
// From: nvttCPUInputBufferType(NvttCPUInputBuffer*)
public NvttValueType Type()
{
return Api.nvttCPUInputBufferType((NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this));
}
// From: nvttEncodeCPU(NvttCPUInputBuffer*, void*, NvttEncodeSettings*)
public NvttBoolean EncodeCPU(void* output, NvttEncodeSettings* settings)
{
return Api.nvttEncodeCPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
output,
settings);
}
// From: nvttEncodeBC1CPU(NvttCPUInputBuffer*, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC1CPU(NvttBoolean fast_mode, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC1CPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
fast_mode,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC1ACPU(NvttCPUInputBuffer*, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC1ACPU(NvttBoolean fast_mode, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC1ACPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
fast_mode,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC2CPU(NvttCPUInputBuffer*, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC2CPU(NvttBoolean fast_mode, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC2CPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
fast_mode,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC3CPU(NvttCPUInputBuffer*, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC3CPU(NvttBoolean fast_mode, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC3CPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
fast_mode,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC3NCPU(NvttCPUInputBuffer*, int, void*, NvttTimingContext*)
public void EncodeBC3NCPU(int qualityLevel, void* output, NvttTimingContext* tc)
{
Api.nvttEncodeBC3NCPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
qualityLevel,
output,
tc);
}
// From: nvttEncodeBC3RGBMCPU(NvttCPUInputBuffer*, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC3RGBMCPU(void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC3RGBMCPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC4CPU(NvttCPUInputBuffer*, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC4CPU(NvttBoolean slow_mode, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC4CPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
slow_mode,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC4SCPU(NvttCPUInputBuffer*, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC4SCPU(NvttBoolean slow_mode, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC4SCPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
slow_mode,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeATI2CPU(NvttCPUInputBuffer*, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeATI2CPU(NvttBoolean slow_mode, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeATI2CPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
slow_mode,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC5CPU(NvttCPUInputBuffer*, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC5CPU(NvttBoolean slow_mode, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC5CPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
slow_mode,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC5SCPU(NvttCPUInputBuffer*, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC5SCPU(NvttBoolean slow_mode, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC5SCPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
slow_mode,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC6HCPU(NvttCPUInputBuffer*, NvttBoolean, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC6HCPU(NvttBoolean slow_mode, NvttBoolean is_signed, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC6HCPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
slow_mode,
is_signed,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeBC7CPU(NvttCPUInputBuffer*, NvttBoolean, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeBC7CPU(NvttBoolean slow_mode, NvttBoolean imageHasAlpha, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeBC7CPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
slow_mode,
imageHasAlpha,
output,
useGpu,
to_device_mem,
tc);
}
// From: nvttEncodeASTCCPU(NvttCPUInputBuffer*, int, NvttBoolean, void*, NvttBoolean, NvttBoolean, NvttTimingContext*)
public void EncodeASTCCPU(int qualityLevel, NvttBoolean imageHasAlpha, void* output, NvttBoolean useGpu, NvttBoolean to_device_mem, NvttTimingContext* tc)
{
Api.nvttEncodeASTCCPU(
(NvttCPUInputBuffer*)System.Runtime.CompilerServices.Unsafe.AsPointer(ref this),
qualityLevel,
imageHasAlpha,
output,
useGpu,
to_device_mem,
tc);
}
}