Browse Source

Wayland: destroy transient framebuffer SHM pools (#21870)

pull/21548/merge
Jumar Macato 2 months ago
committed by GitHub
parent
commit
37154a5275
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 19
      src/Avalonia.Wayland/Server/Transient/Rendering/WaylandFramebuffer.cs

19
src/Avalonia.Wayland/Server/Transient/Rendering/WaylandFramebuffer.cs

@ -72,10 +72,21 @@ class WaylandFramebuffer(IWaylandFramebufferSurface surface) : IFramebufferPlatf
if (!State.IsReady)
return;
using var pool = _p._surface.Globals!.WlShm.CreatePool(fd, bufferLen);
var listener = new BufferListener();
var buffer = pool.CreateBuffer(0, size.Width, size.Height, stride,
WlShm.FormatEnum.Argb8888, listener);
var pool = _p._surface.Globals!.WlShm.CreatePool(fd, bufferLen);
WlBuffer buffer;
try
{
var listener = new BufferListener();
buffer = pool.CreateBuffer(0, size.Width, size.Height, stride,
WlShm.FormatEnum.Argb8888, listener);
}
finally
{
// NWayland's Dispose only destroys the local proxy;
// the generated method is required to marshal the
// Wayland destructor request to the compositor.
pool.Destroy();
}
// Stage per-frame state (frame callback +
// ack_configure + geometry + viewport/scale +

Loading…
Cancel
Save