mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-31 12:53:47 +01:00
This commit is contained in:
parent
7717251c6a
commit
4c8ff40821
2 changed files with 25 additions and 4 deletions
20
Penumbra/Util/PointerExtensions.cs
Normal file
20
Penumbra/Util/PointerExtensions.cs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
namespace Penumbra.Util;
|
||||
|
||||
public static class PointerExtensions
|
||||
{
|
||||
public static unsafe ref TField GetField<TField, TPointer>(this ref TPointer reference, int offset)
|
||||
where TPointer : unmanaged
|
||||
where TField : unmanaged
|
||||
{
|
||||
var pointer = (byte*)Unsafe.AsPointer(ref reference) + offset;
|
||||
return ref *(TField*)pointer;
|
||||
}
|
||||
|
||||
public static unsafe ref TField GetField<TField, TPointer>(TPointer* itemPointer, int offset)
|
||||
where TPointer : unmanaged
|
||||
where TField : unmanaged
|
||||
{
|
||||
var pointer = (byte*)itemPointer + offset;
|
||||
return ref *(TField*)pointer;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue