|
|
|
@ -17,16 +17,18 @@ namespace Avalonia.Win32 |
|
|
|
|
|
|
|
public ILockedFramebuffer Lock() |
|
|
|
{ |
|
|
|
UnmanagedMethods.RECT rc; |
|
|
|
UnmanagedMethods.GetClientRect(_hwnd, out rc); |
|
|
|
var width = rc.right - rc.left; |
|
|
|
var height = rc.bottom - rc.top; |
|
|
|
if ((_fb == null || _fb.Size.Width != width || _fb.Size.Height != height) && width > 0 && height > 0) |
|
|
|
UnmanagedMethods.GetClientRect(_hwnd, out var rc); |
|
|
|
|
|
|
|
var width = Math.Max(1, rc.right - rc.left); |
|
|
|
var height = Math.Max(1, rc.bottom - rc.top); |
|
|
|
|
|
|
|
if ((_fb == null || _fb.Size.Width != width || _fb.Size.Height != height)) |
|
|
|
{ |
|
|
|
_fb?.Deallocate(); |
|
|
|
_fb = null; |
|
|
|
_fb = new WindowFramebuffer(_hwnd, new PixelSize(width, height)); |
|
|
|
} |
|
|
|
|
|
|
|
return _fb; |
|
|
|
} |
|
|
|
} |
|
|
|
|