Fix PixelFormatSampler.Write` in C# to actually work

This commit is contained in:
Wojtek Figat
2026-03-26 15:33:55 +01:00
parent ccc8d209da
commit f1b6c13ba9
2 changed files with 11 additions and 11 deletions

View File

@@ -157,7 +157,7 @@ namespace FlaxEngine
#endif
var v = new Float4(value);
fixed (byte* data = _data)
_sampler.Write(data + index * _stride, ref v);
_sampler.Write(data + index * _stride, &v);
}
/// <summary>
@@ -173,7 +173,7 @@ namespace FlaxEngine
#endif
var v = new Float4(value);
fixed (byte* data = _data)
_sampler.Write(data + index * _stride, ref v);
_sampler.Write(data + index * _stride, &v);
}
/// <summary>
@@ -189,7 +189,7 @@ namespace FlaxEngine
#endif
var v = new Float4(value, 0.0f, 0.0f);
fixed (byte* data = _data)
_sampler.Write(data + index * _stride, ref v);
_sampler.Write(data + index * _stride, &v);
}
/// <summary>
@@ -205,7 +205,7 @@ namespace FlaxEngine
#endif
var v = new Float4(value, 0.0f);
fixed (byte* data = _data)
_sampler.Write(data + index * _stride, ref v);
_sampler.Write(data + index * _stride, &v);
}
/// <summary>
@@ -220,7 +220,7 @@ namespace FlaxEngine
throw new NullReferenceException("Missing stream data. Ensure to allocate mesh buffer or check for its existence.");
#endif
fixed (byte* data = _data)
_sampler.Write(data + index * _stride, ref value);
_sampler.Write(data + index * _stride, &value);
}
/// <summary>
@@ -259,7 +259,7 @@ namespace FlaxEngine
for (int i = 0; i < count; i++)
{
var v = new Float4(src[i], 0.0f, 0.0f);
_sampler.Write(data + i * _stride, ref v);
_sampler.Write(data + i * _stride, &v);
}
}
}
@@ -287,7 +287,7 @@ namespace FlaxEngine
for (int i = 0; i < count; i++)
{
var v = new Float4(src[i], 0.0f);
_sampler.Write(data + i * _stride, ref v);
_sampler.Write(data + i * _stride, &v);
}
}
}
@@ -315,7 +315,7 @@ namespace FlaxEngine
for (int i = 0; i < count; i++)
{
var v = (Float4)src[i];
_sampler.Write(data + i * _stride, ref v);
_sampler.Write(data + i * _stride, &v);
}
}
}
@@ -352,7 +352,7 @@ namespace FlaxEngine
for (int i = 0; i < count; i++)
{
var v = new Float4(src[i]);
_sampler.Write(data + i * _stride, ref v);
_sampler.Write(data + i * _stride, &v);
}
}
}

View File

@@ -22,7 +22,7 @@ namespace FlaxEngine
/// <summary>
/// Write data function.
/// </summary>
public delegate* unmanaged<void*, ref Float4, void> Write;
public delegate* unmanaged<void*, Float4*, void> Write;
/// <summary>
/// Tries to get a sampler tool for the specified format to read pixels.
@@ -38,7 +38,7 @@ namespace FlaxEngine
Format = format,
PixelSize = pixelSize,
Read = (delegate* unmanaged<void*, Float4>)read.ToPointer(),
Write = (delegate* unmanaged<void*, ref Float4, void>)write.ToPointer(),
Write = (delegate* unmanaged<void*, Float4*, void>)write.ToPointer(),
};
return pixelSize != 0;
}