public void WriteTo()

in binding/SkiaSharp/SKRuntimeEffect.cs [532:588]


		public void WriteTo (Span<byte> data)
		{
			switch (Type) {
				// float
				case DataType.Float when data.Length == sizeof (float):
					fixed (void* v = &floatValue)
						new ReadOnlySpan<byte> (v, Size).CopyTo (data);
					break;
				case DataType.Float:
					throw new ArgumentOutOfRangeException (nameof (Type), $"Unknown float data type length: {data.Length}");

				// float array
				case DataType.FloatArray when data.Length == sizeof (int) * floatArray.Length:
					fixed (void* v = floatArray)
						new ReadOnlySpan<byte> (v, Size).CopyTo (data);
					break;
				case DataType.FloatArray:
					throw new ArgumentOutOfRangeException (nameof (Type), $"Unknown float array data type length: {data.Length}");

				// int
				case DataType.Int32 when data.Length == sizeof (int):
					fixed (void* v = &intValue)
						new ReadOnlySpan<byte> (v, Size).CopyTo (data);
					break;
				case DataType.Int32:
					throw new ArgumentOutOfRangeException (nameof (Type), $"Unknown int data type length: {data.Length}");

				// int array
				case DataType.Int32Array when data.Length == sizeof (int) * intArray.Length:
					fixed (void* v = intArray)
						new ReadOnlySpan<byte> (v, Size).CopyTo (data);
					break;
				case DataType.Int32Array:
					throw new ArgumentOutOfRangeException (nameof (Type), $"Unknown int array data type length: {data.Length}");

				// colors
				case DataType.Color when data.Length == sizeof (float) * 3:
					void* vc3 = stackalloc[] { colorValue.Red, colorValue.Green, colorValue.Blue };
					new ReadOnlySpan<byte> (vc3, data.Length).CopyTo (data);
					break;
				case DataType.Color when data.Length == sizeof (float) * 4:
					void* vc4 = stackalloc[] { colorValue.Red, colorValue.Green, colorValue.Blue, colorValue.Alpha };
					new ReadOnlySpan<byte> (vc4, data.Length).CopyTo (data);
					break;
				case DataType.Color:
					throw new ArgumentOutOfRangeException (nameof (Type), $"Unknown color data type length: {data.Length}");

				// empty
				case DataType.Empty:
					data.Fill (0);
					break;

				// error
				default:
					throw new ArgumentOutOfRangeException (nameof (Type), $"Unknown data type: '{Type}'");
			}
		}