56 lines
2.6 KiB
C#
56 lines
2.6 KiB
C#
namespace Auspex.Lighting.Internal;
|
|
|
|
internal static class LightNativeBridge
|
|
{
|
|
public unsafe delegate GameLightData* SpawnDelegate(GameLightData* light);
|
|
|
|
public unsafe delegate void CreateDelegate(GameLightData* light);
|
|
|
|
public unsafe delegate void FinalizeDelegate(GameLightData* light);
|
|
|
|
public unsafe delegate void UpdateCullingDelegate(GameLightData* light);
|
|
|
|
public unsafe delegate void UpdateMaterialDelegate(GameLightData* light);
|
|
|
|
public unsafe delegate void UpdateRangeDelegate(LightRenderData* renderData);
|
|
|
|
public const string SpawnSig = "E8 ?? ?? ?? ?? 48 89 84 ?? ?? ?? ?? ?? 48 85 C0 0F ?? ?? ?? ?? ?? 48 8B C8";
|
|
|
|
public static SpawnDelegate Spawn;
|
|
|
|
public const string CreateSig = "E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D3 E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B ?? ?? ?? ?? ?? 40 0F";
|
|
|
|
public static CreateDelegate Create;
|
|
|
|
public const string FinalizeSig = "F6 41 38 01 ?? ?? 48 8B ?? ?? ?? ?? ?? 48";
|
|
|
|
public new static FinalizeDelegate Finalize;
|
|
|
|
public const string UpdateCullingSig = "48 89 5C 24 ?? 57 48 83 EC 40 48 8B B9 ?? ?? ?? ??";
|
|
|
|
public static UpdateCullingDelegate UpdateCulling;
|
|
|
|
public const string UpdateMaterialSig = "40 53 48 83 EC 20 0F B6 81 ?? ?? ?? ?? 48 8B D9 A8 04 75 45 0C 04 B2 05";
|
|
|
|
public static UpdateMaterialDelegate UpdateMaterial;
|
|
|
|
public const string UpdateRangeSig = "E8 ?? ?? ?? ?? 48 8D 8F ?? ?? ?? ?? FF 15 ?? ?? ?? ?? 48 8D 8F ?? ?? ?? ?? 48 8D 55";
|
|
|
|
public static UpdateRangeDelegate UpdateRange;
|
|
|
|
internal static void Initialize()
|
|
{
|
|
SpawnDelegate spawn = SigScanHelper.Scan<SpawnDelegate>("E8 ?? ?? ?? ?? 48 89 84 ?? ?? ?? ?? ?? 48 85 C0 0F ?? ?? ?? ?? ?? 48 8B C8", "Spawn");
|
|
CreateDelegate create = SigScanHelper.Scan<CreateDelegate>("E8 ?? ?? ?? ?? 48 8B 0D ?? ?? ?? ?? 48 8B D3 E8 ?? ?? ?? ?? 48 8B CB E8 ?? ?? ?? ?? 48 8B ?? ?? ?? ?? ?? 40 0F", "Create");
|
|
FinalizeDelegate finalize = SigScanHelper.Scan<FinalizeDelegate>("F6 41 38 01 ?? ?? 48 8B ?? ?? ?? ?? ?? 48", "Finalize");
|
|
UpdateCullingDelegate updateCulling = SigScanHelper.Scan<UpdateCullingDelegate>("48 89 5C 24 ?? 57 48 83 EC 40 48 8B B9 ?? ?? ?? ??", "UpdateCulling");
|
|
UpdateMaterialDelegate updateMaterial = SigScanHelper.Scan<UpdateMaterialDelegate>("40 53 48 83 EC 20 0F B6 81 ?? ?? ?? ?? 48 8B D9 A8 04 75 45 0C 04 B2 05", "UpdateMaterial");
|
|
UpdateRangeDelegate updateRange = SigScanHelper.Scan<UpdateRangeDelegate>("E8 ?? ?? ?? ?? 48 8D 8F ?? ?? ?? ?? FF 15 ?? ?? ?? ?? 48 8D 8F ?? ?? ?? ?? 48 8D 55", "UpdateRange");
|
|
Spawn = spawn;
|
|
Create = create;
|
|
Finalize = finalize;
|
|
UpdateCulling = updateCulling;
|
|
UpdateMaterial = updateMaterial;
|
|
UpdateRange = updateRange;
|
|
}
|
|
}
|