public void DeallocateWithSegmented(H1GpuMemoryAllocInfo info)
        {
            // deallocate memory
            info.MemoryBlock.MemoryPage.Deallocate(info.MemoryBlock);

            // update available memory page
            UpdateAvailableMemoryPageSegmented();
        }
 public void Deallocate(H1GpuMemoryAllocInfo info)
 {
     if (m_PageType == H1GpuMemoryPageType.Segmented)
     {
         DeallocateWithSegmented(info);
     }
     else if (m_PageType == H1GpuMemoryPageType.Normal)
     {
         DeallocateWithNormal(info);
     }
     else
     {
         throw new InvalidOperationException();
     }
 }
        public H1GpuMemoryAllocInfo Allocate(Int32 size)
        {
            H1GpuMemoryAllocInfo result = null;

            if (m_PageType == H1GpuMemoryPageType.Segmented)
            {
                result = AllocateWithSegmented(size);
            }
            else if (m_PageType == H1GpuMemoryPageType.Normal)
            {
                result = AllocateWithNormal(size);
            }
            else // currently memory page type is NOT specified
            {
                return(null);
            }

            return(result);
        }
 public void DeallocateWithNormal(H1GpuMemoryAllocInfo info)
 {
     throw new NotImplementedException();
 }