예제 #1
0
        public unsafe void Add(TypeManager.TypeInfo typeInfo)
        {
            if (m_TypeInfo[typeInfo.TypeIndex & TypeManager.ClearFlagsMask].StableTypeHash != 0)
            {
                return;
            }

            m_TypeInfo[typeInfo.TypeIndex & TypeManager.ClearFlagsMask] = new Layout
            {
                ElementSize          = typeInfo.ElementSize,
                EntityOffsetCount    = typeInfo.EntityOffsetCount,
                StableTypeHash       = typeInfo.StableTypeHash,
                EntityOffsetPosition = m_EntityOffsets.Length
            };

            if (typeInfo.HasEntities)
            {
                m_EntityOffsets.AddRange(TypeManager.GetEntityOffsets(typeInfo.TypeIndex), typeInfo.EntityOffsetCount * sizeof(TypeManager.EntityOffsetInfo));
            }
        }