public override unsafe void Update(float[] values, ShaderVariableMapping variable) { uint srcStride = (uint)ShaderBase.VariableTypeToSrcStride(ShaderVariableType.Float); uint dstStride = (uint)ShaderBase.VariableTypeToDstStride(ShaderVariableType.Float); fixed(float *ptr = values) Orbital_Video_D3D12_ConstantBuffer_UpdateArray(handle, ptr, sizeof(float), (uint)values.Length, (uint)variable.offset, srcStride, dstStride, activeNodeIndex); }
public override unsafe void Update(Vec3[] vectors, ShaderVariableMapping variable) { uint srcStride = (uint)ShaderBase.VariableTypeToSrcStride(ShaderVariableType.Float3); uint dstStride = (uint)ShaderBase.VariableTypeToDstStride(ShaderVariableType.Float3); fixed(Vec3 *ptr = vectors) Orbital_Video_D3D12_ConstantBuffer_UpdateArray(handle, ptr, (uint)Marshal.SizeOf <Vec3>(), (uint)vectors.Length, (uint)variable.offset, srcStride, dstStride, activeNodeIndex); }
public override unsafe void Update(Quat[] quaternions, ShaderVariableMapping variable) { uint srcStride = (uint)ShaderBase.VariableTypeToSrcStride(ShaderVariableType.Float4); uint dstStride = (uint)ShaderBase.VariableTypeToDstStride(ShaderVariableType.Float4); fixed(Quat *ptr = quaternions) Orbital_Video_D3D12_ConstantBuffer_UpdateArray(handle, ptr, (uint)Marshal.SizeOf <Quat>(), (uint)quaternions.Length, (uint)variable.offset, srcStride, dstStride, activeNodeIndex); }
public override unsafe void Update(Mat3x2[] matrices, ShaderVariableMapping variable) { uint srcStride = (uint)ShaderBase.VariableTypeToSrcStride(ShaderVariableType.Float3x2); uint dstStride = (uint)ShaderBase.VariableTypeToDstStride(ShaderVariableType.Float3x2); fixed(Mat3x2 *ptr = matrices) Orbital_Video_D3D12_ConstantBuffer_UpdateArray(handle, ptr, (uint)Marshal.SizeOf <Mat3x2>(), (uint)matrices.Length, (uint)variable.offset, srcStride, dstStride, activeNodeIndex); }
public override unsafe void Update(Color4[] colors, ShaderVariableMapping variable) { uint srcStride = (uint)ShaderBase.VariableTypeToSrcStride(ShaderVariableType.Float4) / sizeof(float); uint dstStride = (uint)ShaderBase.VariableTypeToDstStride(ShaderVariableType.Float4); fixed(Color4 *ptr = colors) Orbital_Video_D3D12_ConstantBuffer_UpdateColorArray(handle, ptr, (uint)Marshal.SizeOf <Color4>(), (uint)colors.Length, (uint)variable.offset, srcStride, dstStride, activeNodeIndex); }
public unsafe override void Update <T>(T[] data, ShaderVariableMapping variable) { uint srcStride = (uint)ShaderBase.VariableTypeToSrcStride(variable.type); uint dstStride = (uint)ShaderBase.VariableTypeToDstStride(variable.type); fixed(T *dataPtr = data) { Orbital_Video_D3D12_ConstantBuffer_UpdateArray(handle, dataPtr, (uint)Marshal.SizeOf <T>(), (uint)data.Length, (uint)variable.offset, srcStride, dstStride, activeNodeIndex); } }
public unsafe override void Update <T>(T data, ShaderVariableMapping variable) { TypedReference reference = __makeref(data); byte * ptr = (byte *)*((IntPtr *)&reference); #if MONO ptr += Marshal.SizeOf(typeof(RuntimeTypeHandle)); #endif Orbital_Video_D3D12_ConstantBuffer_Update(handle, ptr, (uint)Marshal.SizeOf <T>(), (uint)variable.offset, activeNodeIndex); }
public unsafe override void Update <T>(T[] data, ShaderVariableMapping variable) { uint srcStride = (uint)ShaderBase.VariableTypeToSrcStride(variable.type); uint dstStride = (uint)ShaderBase.VariableTypeToDstStride(variable.type); GCHandle gcHandle = GCHandle.Alloc(data, GCHandleType.Pinned); IntPtr dataPtr = gcHandle.AddrOfPinnedObject(); Orbital_Video_D3D12_ConstantBuffer_UpdateArray(handle, (void *)dataPtr, (uint)Marshal.SizeOf <T>(), (uint)data.Length, (uint)variable.offset, srcStride, dstStride, activeNodeIndex); gcHandle.Free(); }
public override unsafe void Update(Quat[] quaternions, ShaderVariableMapping variable) { throw new NotImplementedException(); }
public override unsafe void Update(Mat4[] matrices, ShaderVariableMapping variable) { throw new NotImplementedException(); }
public override unsafe void Update(float[] values, ShaderVariableMapping variable) { throw new NotImplementedException(); }
public override void Update(Mat3x2 matrix, ShaderVariableMapping variable) { throw new NotImplementedException(); }
public override void Update(Vec4 vector, ShaderVariableMapping variable) { throw new NotImplementedException(); }
public override unsafe void Update(float value, ShaderVariableMapping variable) { Orbital_Video_D3D12_ConstantBuffer_Update(handle, &value, sizeof(float), (uint)variable.offset, activeNodeIndex); }
public override unsafe void Update(Vec3 vector, ShaderVariableMapping variable) { Orbital_Video_D3D12_ConstantBuffer_Update(handle, &vector, (uint)Marshal.SizeOf <Vec3>(), (uint)variable.offset, activeNodeIndex); }
public override unsafe void Update(Mat4 matrix, ShaderVariableMapping variable) { Orbital_Video_D3D12_ConstantBuffer_Update(handle, &matrix, (uint)Marshal.SizeOf <Mat4>(), (uint)variable.offset, activeNodeIndex); }
public override unsafe void Update(Color4[] colors, ShaderVariableMapping variable) { throw new NotImplementedException(); }
public override unsafe void Update(Color4 color, ShaderVariableMapping variable) { var colorVec = color.ToVec4(); Orbital_Video_D3D12_ConstantBuffer_Update(handle, &colorVec, (uint)Marshal.SizeOf <Vec4>(), (uint)variable.offset, activeNodeIndex); }
public override unsafe void Update(Quat quaternion, ShaderVariableMapping variable) { Orbital_Video_D3D12_ConstantBuffer_Update(handle, &quaternion, (uint)Marshal.SizeOf <Quat>(), (uint)variable.offset, activeNodeIndex); }
public override void Update <T>(T[] data, ShaderVariableMapping variable) { throw new NotImplementedException(); }
public unsafe override void Update <T>(T data, ShaderVariableMapping variable) { Orbital_Video_D3D12_ConstantBuffer_Update(handle, &data, (uint)Marshal.SizeOf <T>(), (uint)variable.offset, activeNodeIndex); }