Пример #1
0
            object INativeType.GetValue(MemoryHolder /*!*/ owner, object readingFrom, int offset, bool raw)
            {
                _Structure res = (_Structure)CreateInstance(this.Context.SharedContext);

                res._memHolder = owner.GetSubBlock(offset);
                return(res);
            }
Пример #2
0
            public _Structure from_address(CodeContext /*!*/ context, IntPtr ptr)
            {
                _Structure res = (_Structure)CreateInstance(context);

                res.SetAddress(ptr);
                return(res);
            }
Пример #3
0
            public _Structure from_buffer_copy(CodeContext /*!*/ context, object /*?*/ data, int offset = 0)
            {
                _Structure res = (_Structure)CreateInstance(context);

                res.InitializeFromBufferCopy(data, offset, ((INativeType)this).Size);
                return(res);
            }
Пример #4
0
            public _Structure from_buffer_copy(ArrayModule.array array, [DefaultParameterValue(0)] int offset)
            {
                ValidateArraySizes(array, offset, ((INativeType)this).Size);

                _Structure res = (_Structure)CreateInstance(Context.SharedContext);

                res._memHolder = new MemoryHolder(((INativeType)this).Size);
                res._memHolder.CopyFrom(array.GetArrayAddress().Add(offset), new IntPtr(((INativeType)this).Size));
                GC.KeepAlive(array);
                return(res);
            }
Пример #5
0
            public _Structure from_buffer(ArrayModule.array array, [DefaultParameterValue(0)] int offset)
            {
                ValidateArraySizes(array, offset, ((INativeType)this).Size);

                _Structure res  = (_Structure)CreateInstance(Context.SharedContext);
                IntPtr     addr = array.GetArrayAddress();

                res._memHolder = new MemoryHolder(addr.Add(offset), ((INativeType)this).Size);
                res._memHolder.AddObject("ffffffff", array);
                return(res);
            }
Пример #6
0
            public _Structure from_buffer(CodeContext /*!*/ context, ArrayModule.array array, int offset = 0)
            {
                ValidateArraySizes(array, offset, ((INativeType)this).Size);

                _Structure res  = (_Structure)CreateInstance(context);
                IntPtr     addr = array.GetArrayAddress();

                res._memHolder = new MemoryHolder(addr.Add(offset), ((INativeType)this).Size);
                res._memHolder.AddObject("ffffffff", array);
                return(res);
            }