// minSize and maxSize xy must be POT (256x256 and 2048x1024 are two valid examples) public Allocator2D(Vector2Int minSize, Vector2Int maxSize, int rowHeightBias) { Debug.Assert( minSize.x > 0 && minSize.x <= maxSize.x && minSize.y > 0 && minSize.y <= maxSize.y); Debug.Assert( minSize.x == UIRUtility.GetNextPow2(minSize.x) && minSize.y == UIRUtility.GetNextPow2(minSize.y) && maxSize.x == UIRUtility.GetNextPow2(maxSize.x) && maxSize.y == UIRUtility.GetNextPow2(maxSize.y)); Debug.Assert(rowHeightBias >= 0); m_MinSize = minSize; m_MaxSize = maxSize; m_RowHeightBias = rowHeightBias; BuildAreas(m_Areas, minSize, maxSize); m_MaxAllocSize = ComputeMaxAllocSize(m_Areas, rowHeightBias); m_Rows = BuildRowArray(m_MaxAllocSize.y, rowHeightBias); }