Browse Source

Rename ImportCompeted into ImportCompleted

pull/12117/head
jgcodes2020 3 years ago
parent
commit
19bae967d3
  1. 11
      src/Avalonia.Base/Rendering/Composition/CompositionExternalMemory.cs
  2. 6
      src/Avalonia.Base/Rendering/Composition/CompositionInterop.cs
  3. 6
      src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionDrawingSurface.cs

11
src/Avalonia.Base/Rendering/Composition/CompositionExternalMemory.cs

@ -84,14 +84,21 @@ public enum CompositionGpuImportedImageSynchronizationCapabilities
/// <summary>
/// An imported GPU object that's usable by composition APIs
/// </summary>
[NotClientImplementable]
public interface ICompositionGpuImportedObject : IAsyncDisposable
{
/// <summary>
/// Tracks the import status of the object. Once the task is completed,
/// the user code is allowed to free the resource owner in case when a non-owning
/// sharing handle was used
/// sharing handle was used.
/// </summary>
Task ImportCompeted { get; }
Task ImportCompleted { get; }
/// <inheritdoc cref="ImportCompleted"/>
/// <seealso cref="ImportCompleted">ImportCompleted (recommended replacement)</seealso>
[Obsolete("Please use ICompositionGpuImportedObject.ImportCompleted instead")]
Task ImportCompeted => ImportCompleted;
/// <summary>
/// Indicates if the device context this instance is associated with is no longer available
/// </summary>

6
src/Avalonia.Base/Rendering/Composition/CompositionInterop.cs

@ -67,18 +67,18 @@ abstract class CompositionGpuImportedObjectBase : ICompositionGpuImportedObject
Context = context;
Feature = feature;
ImportCompeted = Compositor.InvokeServerJobAsync(Import);
ImportCompleted = Compositor.InvokeServerJobAsync(Import);
}
protected abstract void Import();
public abstract void Dispose();
public Task ImportCompeted { get; }
public Task ImportCompleted { get; }
public bool IsLost => Context.IsLost;
public ValueTask DisposeAsync() => new(Compositor.InvokeServerJobAsync(() =>
{
if (ImportCompeted.Status == TaskStatus.RanToCompletion)
if (ImportCompleted.Status == TaskStatus.RanToCompletion)
Dispose();
}));
}

6
src/Avalonia.Base/Rendering/Composition/Server/ServerCompositionDrawingSurface.cs

@ -31,12 +31,12 @@ internal class ServerCompositionDrawingSurface : ServerCompositionSurface, IDisp
throw new PlatformGraphicsContextLostException();
// This should never happen, but check for it anyway to avoid a deadlock
if (!image.ImportCompeted.IsCompleted)
if (!image.ImportCompleted.IsCompleted)
throw new InvalidOperationException("The import operation is not completed yet");
// Rethrow the import here exception
if (image.ImportCompeted.IsFaulted)
image.ImportCompeted.GetAwaiter().GetResult();
if (image.ImportCompleted.IsFaulted)
image.ImportCompleted.GetAwaiter().GetResult();
}
void Update(IBitmapImpl newImage, IPlatformRenderInterfaceContext context)

Loading…
Cancel
Save