mirror of
https://github.com/DCFApixels/DragonECS.git
synced 2025-09-17 17:34:36 +08:00
fix EcsGroup pages managment
This commit is contained in:
parent
7db238709c
commit
914dfb52a6
@ -5,7 +5,6 @@ using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
@ -402,21 +401,23 @@ namespace DCFApixels.DragonECS
|
||||
_dense[_count] = entityID;
|
||||
|
||||
//_sparse[entityID] = _count;
|
||||
//_count == new index
|
||||
ref PageSlot page = ref _sparsePages[entityID >> PageSlot.SHIFT];
|
||||
if(page.Count++ == 1)
|
||||
page.Count++;
|
||||
// page.Count != 0
|
||||
if (page.Count == 1)
|
||||
{
|
||||
int* x = _nullPage;
|
||||
if (page.Indexes != x)
|
||||
{
|
||||
|
||||
page.IndexesXOR = _count;
|
||||
}
|
||||
|
||||
else // page.Count > 1
|
||||
{
|
||||
if (page.Count == 2)
|
||||
{
|
||||
page.Indexes = _source.TakePage();
|
||||
page.Indexes[_dense[page.IndexesXOR] & PageSlot.MASK] = page.IndexesXOR;
|
||||
}
|
||||
if(page.Count != 1)
|
||||
{
|
||||
page.Indexes[entityID & PageSlot.MASK] = _count;
|
||||
page.IndexesXOR ^= _count;
|
||||
page.Indexes[entityID & PageSlot.MASK] = _count;
|
||||
}
|
||||
|
||||
//if ((page.Count == 0 && page.IndexesXOR != 0) ||
|
||||
|
Loading…
Reference in New Issue
Block a user