Esempio n. 1
0
 public static void EnsureSizeAndClear <T>(ref NativeListArray <T> array, int exactSize, Allocator allocator = Allocator.Temp)
     where T : unmanaged
 {
     if (!array.IsCreated || array.Capacity < exactSize)
     {
         if (array.IsCreated)
         {
             array.Dispose();
         }
         array = new NativeListArray <T>(exactSize, allocator);
     }
     else
     {
         array.ClearChildren();
     }
     array.ResizeExact(exactSize);
 }
Esempio n. 2
0
        public JobHandle Dispose(JobHandle dependency)
        {
            JobHandle lastJobHandle = default;

            if (meshDescriptions.IsCreated)
            {
                lastJobHandle = JobHandle.CombineDependencies(lastJobHandle, meshDescriptions.Dispose(dependency));
            }
            if (subMeshSections.IsCreated)
            {
                lastJobHandle = JobHandle.CombineDependencies(lastJobHandle, subMeshSections.Dispose(dependency));
            }
            if (meshes.IsCreated)
            {
                lastJobHandle = JobHandle.CombineDependencies(lastJobHandle, meshes.Dispose(dependency));
            }
            if (triangleBrushIndices.IsCreated)
            {
                lastJobHandle = JobHandle.CombineDependencies(lastJobHandle, triangleBrushIndices.Dispose(dependency));
            }

            if (renderDescriptors.IsCreated)
            {
                lastJobHandle = JobHandle.CombineDependencies(lastJobHandle, renderDescriptors.Dispose(dependency));
            }
            if (colliderDescriptors.IsCreated)
            {
                lastJobHandle = JobHandle.CombineDependencies(lastJobHandle, colliderDescriptors.Dispose(dependency));
            }

            meshDescriptions     = default;
            subMeshSections      = default;
            meshes               = default;
            triangleBrushIndices = default;
            renderDescriptors    = default;
            colliderDescriptors  = default;
            return(lastJobHandle);
        }