コード例 #1
0
        public static void Copy(NativeBucket <T> src, NativeArray <T> dst)
        {
            int copied_num = 0;

            for (int i = 0; i < JobsUtility.MaxJobThreadCount; ++i)
            {
                NativeBucketHeader *headerBlock = GetHeaderBlock(src.m_HeaderBlock, i);
                if (copied_num + headerBlock->itemsInBlock > dst.Length)
                {
                    throw new ArgumentOutOfRangeException("Size of destination NativeArray is smaller than NativeBucket.");
                }

                UnsafeUtility.MemCpy((byte *)dst.GetUnsafePtr() + UnsafeUtility.SizeOf <T>() * copied_num,
                                     (byte *)headerBlock->block,
                                     headerBlock->unitSize * headerBlock->itemsInBlock);
                copied_num += headerBlock->itemsInBlock;
            }
        }
コード例 #2
0
        public static void Copy(NativeBucket <T> src, T[] dst)
        {
            int copied_num = 0;
            var handle     = GCHandle.Alloc(dst, GCHandleType.Pinned);
            var addr       = handle.AddrOfPinnedObject();

            for (int i = 0; i < JobsUtility.MaxJobThreadCount; ++i)
            {
                NativeBucketHeader *headerBlock = GetHeaderBlock(src.m_HeaderBlock, i);
                if (copied_num + headerBlock->itemsInBlock > dst.Length)
                {
                    throw new ArgumentOutOfRangeException("Size of destination NativeArray is smaller than NativeBucket.");
                }

                UnsafeUtility.MemCpy((byte *)addr + UnsafeUtility.SizeOf <T>() * copied_num,
                                     (byte *)headerBlock->block,
                                     headerBlock->unitSize * headerBlock->itemsInBlock);
                copied_num += headerBlock->itemsInBlock;
            }
            handle.Free();
        }
コード例 #3
0
 static public void initialize()
 {
     native_sprite_data_list_ = new NativeBucket <SpriteData>(BULK_NUM, Allocator.Persistent);
 }
コード例 #4
0
 public NativeBucketDebugView(NativeBucket <T> bucket)
 {
     m_Bucket = bucket;
 }