예제 #1
0
        // 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);
        }