pass through real types to c#

This commit is contained in:
Vinzenz Schroeter 2024-10-16 20:56:55 +02:00
parent db98709ca7
commit 55aa7ecf4c
5 changed files with 45 additions and 45 deletions

View file

@ -4,11 +4,11 @@ namespace ServicePoint;
public sealed class BitVec : SpNativeInstance<BindGen.BitVec>
{
public static BitVec New(int size)
public static BitVec New(nuint size)
{
unsafe
{
return new BitVec(NativeMethods.sp_bitvec_new((nuint)size));
return new BitVec(NativeMethods.sp_bitvec_new(size));
}
}
@ -31,20 +31,20 @@ public sealed class BitVec : SpNativeInstance<BindGen.BitVec>
}
}
public bool this[int index]
public bool this[nuint index]
{
get
{
unsafe
{
return NativeMethods.sp_bitvec_get(Instance, (nuint)index);
return NativeMethods.sp_bitvec_get(Instance, index);
}
}
set
{
unsafe
{
NativeMethods.sp_bitvec_set(Instance, (nuint)index, value);
NativeMethods.sp_bitvec_set(Instance, index, value);
}
}
}
@ -57,13 +57,13 @@ public sealed class BitVec : SpNativeInstance<BindGen.BitVec>
}
}
public int Length
public nuint Length
{
get
{
unsafe
{
return (int)NativeMethods.sp_bitvec_len(Instance);
return NativeMethods.sp_bitvec_len(Instance);
}
}
}

View file

@ -4,21 +4,21 @@ namespace ServicePoint;
public sealed class Bitmap : SpNativeInstance<BindGen.Bitmap>
{
public static Bitmap New(int width, int height)
public static Bitmap New(nuint width, nuint height)
{
unsafe
{
return new Bitmap(NativeMethods.sp_bitmap_new((nuint)width, (nuint)height));
return new Bitmap(NativeMethods.sp_bitmap_new(width, height));
}
}
public static Bitmap Load(int width, int height, Span<byte> bytes)
public static Bitmap Load(nuint width, nuint height, Span<byte> bytes)
{
unsafe
{
fixed (byte* bytesPtr = bytes)
{
return new Bitmap(NativeMethods.sp_bitmap_load((nuint)width, (nuint)height, bytesPtr,
return new Bitmap(NativeMethods.sp_bitmap_load(width, height, bytesPtr,
(nuint)bytes.Length));
}
}
@ -32,20 +32,20 @@ public sealed class Bitmap : SpNativeInstance<BindGen.Bitmap>
}
}
public bool this[int x, int y]
public bool this[nuint x, nuint y]
{
get
{
unsafe
{
return NativeMethods.sp_bitmap_get(Instance, (nuint)x, (nuint)y);
return NativeMethods.sp_bitmap_get(Instance, x, y);
}
}
set
{
unsafe
{
NativeMethods.sp_bitmap_set(Instance, (nuint)x, (nuint)y, value);
NativeMethods.sp_bitmap_set(Instance, x, y, value);
}
}
}
@ -58,24 +58,24 @@ public sealed class Bitmap : SpNativeInstance<BindGen.Bitmap>
}
}
public int Width
public nuint Width
{
get
{
unsafe
{
return (int)NativeMethods.sp_bitmap_width(Instance);
return NativeMethods.sp_bitmap_width(Instance);
}
}
}
public int Height
public nuint Height
{
get
{
unsafe
{
return (int)NativeMethods.sp_bitmap_height(Instance);
return NativeMethods.sp_bitmap_height(Instance);
}
}
}

View file

@ -4,21 +4,21 @@ namespace ServicePoint;
public sealed class BrightnessGrid : SpNativeInstance<BindGen.BrightnessGrid>
{
public static BrightnessGrid New(int width, int height)
public static BrightnessGrid New(nuint width, nuint height)
{
unsafe
{
return new BrightnessGrid(NativeMethods.sp_brightness_grid_new((nuint)width, (nuint)height));
return new BrightnessGrid(NativeMethods.sp_brightness_grid_new(width, height));
}
}
public static BrightnessGrid Load(int width, int height, Span<byte> bytes)
public static BrightnessGrid Load(nuint width, nuint height, Span<byte> bytes)
{
unsafe
{
fixed (byte* bytesPtr = bytes)
{
return new BrightnessGrid(NativeMethods.sp_brightness_grid_load((nuint)width, (nuint)height, bytesPtr,
return new BrightnessGrid(NativeMethods.sp_brightness_grid_load(width, height, bytesPtr,
(nuint)bytes.Length));
}
}
@ -32,20 +32,20 @@ public sealed class BrightnessGrid : SpNativeInstance<BindGen.BrightnessGrid>
}
}
public byte this[int x, int y]
public byte this[nuint x, nuint y]
{
get
{
unsafe
{
return NativeMethods.sp_brightness_grid_get(Instance, (nuint)x, (nuint)y);
return NativeMethods.sp_brightness_grid_get(Instance, x, y);
}
}
set
{
unsafe
{
NativeMethods.sp_brightness_grid_set(Instance, (nuint)x, (nuint)y, value);
NativeMethods.sp_brightness_grid_set(Instance, x, y, value);
}
}
}
@ -58,24 +58,24 @@ public sealed class BrightnessGrid : SpNativeInstance<BindGen.BrightnessGrid>
}
}
public int Width
public nuint Width
{
get
{
unsafe
{
return (int)NativeMethods.sp_brightness_grid_width(Instance);
return NativeMethods.sp_brightness_grid_width(Instance);
}
}
}
public int Height
public nuint Height
{
get
{
unsafe
{
return (int)NativeMethods.sp_brightness_grid_height(Instance);
return NativeMethods.sp_brightness_grid_height(Instance);
}
}
}

View file

@ -61,63 +61,63 @@ public sealed class Command : SpNativeInstance<BindGen.Command>
}
}
public static Command CharBrightness(int x, int y, BrightnessGrid grid)
public static Command CharBrightness(ushort x, ushort y, BrightnessGrid grid)
{
unsafe
{
return new Command(NativeMethods.sp_command_char_brightness((ushort)x, (ushort)y, grid.Into()));
return new Command(NativeMethods.sp_command_char_brightness(x, y, grid.Into()));
}
}
public static Command BitmapLinear(int offset, BitVec bitVec, CompressionCode compressionCode)
public static Command BitmapLinear(ushort offset, BitVec bitVec, CompressionCode compressionCode)
{
unsafe
{
return new Command(
NativeMethods.sp_command_bitmap_linear((ushort)offset, bitVec.Into(), compressionCode));
NativeMethods.sp_command_bitmap_linear(offset, bitVec.Into(), compressionCode));
}
}
public static Command BitmapLinearAnd(int offset, BitVec bitVec, CompressionCode compressionCode)
public static Command BitmapLinearAnd(ushort offset, BitVec bitVec, CompressionCode compressionCode)
{
unsafe
{
return new Command(
NativeMethods.sp_command_bitmap_linear_and((ushort)offset, bitVec.Into(), compressionCode));
NativeMethods.sp_command_bitmap_linear_and(offset, bitVec.Into(), compressionCode));
}
}
public static Command BitmapLinearOr(int offset, BitVec bitVec, CompressionCode compressionCode)
public static Command BitmapLinearOr(ushort offset, BitVec bitVec, CompressionCode compressionCode)
{
unsafe
{
return new Command(
NativeMethods.sp_command_bitmap_linear_or((ushort)offset, bitVec.Into(), compressionCode));
NativeMethods.sp_command_bitmap_linear_or(offset, bitVec.Into(), compressionCode));
}
}
public static Command BitmapLinearXor(int offset, BitVec bitVec, CompressionCode compressionCode)
public static Command BitmapLinearXor(ushort offset, BitVec bitVec, CompressionCode compressionCode)
{
unsafe
{
return new Command(
NativeMethods.sp_command_bitmap_linear_xor((ushort)offset, bitVec.Into(), compressionCode));
NativeMethods.sp_command_bitmap_linear_xor(offset, bitVec.Into(), compressionCode));
}
}
public static Command BitmapLinearWin(int x, int y, Bitmap bitmap, CompressionCode compression)
public static Command BitmapLinearWin(ushort x, ushort y, Bitmap bitmap, CompressionCode compression)
{
unsafe
{
return new Command(NativeMethods.sp_command_bitmap_linear_win((ushort)x, (ushort)y, bitmap.Into(), compression));
return new Command(NativeMethods.sp_command_bitmap_linear_win(x, y, bitmap.Into(), compression));
}
}
public static Command Cp437Data(int x, int y, Cp437Grid byteGrid)
public static Command Cp437Data(ushort x, ushort y, Cp437Grid byteGrid)
{
unsafe
{
return new Command(NativeMethods.sp_command_cp437_data((ushort)x, (ushort)y, byteGrid.Into()));
return new Command(NativeMethods.sp_command_cp437_data(x, y, byteGrid.Into()));
}
}

View file

@ -8,11 +8,11 @@ connection.Send(Command.Brightness(128).IntoPacket());
using var pixels = Bitmap.New(Constants.PixelWidth, Constants.PixelHeight);
for (var offset = 0; offset < int.MaxValue; offset++)
for (nuint offset = 0; offset < nuint.MaxValue; offset++)
{
pixels.Fill(false);
for (var y = 0; y < pixels.Height; y++)
for (nuint y = 0; y < pixels.Height; y++)
pixels[(y + offset) % Constants.PixelWidth, y] = true;
connection.Send(Command.BitmapLinearWin(0, 0, pixels.Clone(), CompressionCode.Lzma).IntoPacket());