Shader like vectors for C# Scripting

This commit is contained in:
Simon Lübeß
2023-07-20 17:48:28 +02:00
parent f0de874572
commit 3e55a1614a
24 changed files with 1572 additions and 486 deletions
+46
View File
@@ -0,0 +1,46 @@
using System;
using GlitchyEngine.Math;
using GlitchyEngine.Math.Attributes;
namespace GlitchyEngine.Math;
// TODO: Currently no VectorMath-Attribute because -uint results in long
[Vector(typeof(uint), 2, "uint")]
[VectorLogic]
[ComparableVector]
[VectorCast(typeof(int2), true)]
[VectorCast(typeof(float2), true)]
public partial struct uint2
{
public static uint2 operator ~(uint2 value)
{
return new uint2(~value.X, ~value.Y);
}
}
[Vector(typeof(uint), 3, "uint")]
[VectorLogic]
[ComparableVector]
[VectorCast(typeof(int3), true)]
[VectorCast(typeof(float3), true)]
public partial struct uint3
{
public static uint3 operator ~(uint3 value)
{
return new uint3(~value.X, ~value.Y, ~value.Z);
}
}
[Vector(typeof(uint), 4, "uint")]
[VectorLogic]
[ComparableVector]
[VectorCast(typeof(int4), true)]
[VectorCast(typeof(float4), true)]
public partial struct uint4
{
public static uint4 operator ~(uint4 value)
{
return new uint4(~value.X, ~value.Y, ~value.Z, ~value.W);
}
}