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();
        }
Ejemplo n.º 9
0
 public override unsafe void Update(Quat[] quaternions, ShaderVariableMapping variable)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 10
0
 public override unsafe void Update(Mat4[] matrices, ShaderVariableMapping variable)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 11
0
 public override unsafe void Update(float[] values, ShaderVariableMapping variable)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 12
0
 public override void Update(Mat3x2 matrix, ShaderVariableMapping variable)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 13
0
 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);
 }
Ejemplo n.º 17
0
 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);
 }
Ejemplo n.º 20
0
 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);
 }