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(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 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(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(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(Mat4[] matrices, int offset) { uint srcStride = (uint)ShaderBase.VariableTypeToSrcStride(ShaderVariableType.Float4x4); uint dstStride = (uint)ShaderBase.VariableTypeToDstStride(ShaderVariableType.Float4x4); fixed(Mat4 *ptr = matrices) Orbital_Video_D3D12_ConstantBuffer_UpdateArray(handle, ptr, (uint)Marshal.SizeOf <Mat4>(), (uint)matrices.Length, (uint)offset, srcStride, dstStride, currentNodeIndex); }
public override unsafe void Update(Vec2[] vectors, int offset) { uint srcStride = (uint)ShaderBase.VariableTypeToSrcStride(ShaderVariableType.Float2); uint dstStride = (uint)ShaderBase.VariableTypeToDstStride(ShaderVariableType.Float2); fixed(Vec2 *ptr = vectors) Orbital_Video_D3D12_ConstantBuffer_UpdateArray(handle, ptr, (uint)Marshal.SizeOf <Vec2>(), (uint)vectors.Length, (uint)offset, srcStride, dstStride, currentNodeIndex); }
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 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); } }