dotnet / dotnet/Silk.NET

MouseState._pressedButtons not return to MemoryPool

Open
#2,411 0 comments 0 reactions 0 assignees View on GitHub
area-Input bug good first issue help wanted
Dominant language
C#
Stars
5.2k
Forks
477
Avg merge
3d 16h
Merged PRs (30d)
2

Description

version 2.22

Image

```csharp
internal MouseState(IMouse mouse, MemoryPool pool)
{
//IL_0097: Unknown result type (might be due to invalid IL or missing references)
//IL_009d: Expected I4, but got Unknown
//IL_015f: Unknown result type (might be due to invalid IL or missing references)
//IL_0164: Unknown result type (might be due to invalid IL or missing references)
Name = ((IInputDevice)mouse).Name;
Index = ((IInputDevice)mouse).Index;
IsConnected = ((IInputDevice)mouse).IsConnected;
IReadOnlyList supportedButtons = mouse.SupportedButtons;
_buttonCount = supportedButtons.Count;
_buttons = pool.Rent(_buttonCount * 4);
_pressedButtons = pool.Rent(_buttonCount * 4);
_pressedButtonCount = _buttonCount;
Span supportedButtons2 = GetSupportedButtons();
Span pressedButtons = GetPressedButtons();
_pressedButtonCount = 0;
for (int i = 0; i < _buttonCount; i++)
{
supportedButtons2[i] = (MouseButton)(int)supportedButtons[i];
if (mouse.IsButtonPressed(supportedButtons2[i]))
{
pressedButtons[_pressedButtonCount++] = supportedButtons2[i];
}
}
using (_pressedButtons)
{
Span pressedButtons2 = GetPressedButtons();
_pressedButtons = pool.Rent(_pressedButtonCount * 4);
pressedButtons = GetPressedButtons();
pressedButtons2.CopyTo(pressedButtons);
IReadOnlyList scrollWheels = mouse.ScrollWheels;
_scrollWheelCount = scrollWheels.Count;
_scrollWheels = pool.Rent(_scrollWheelCount * Unsafe.SizeOf());
Span scrollWheels2 = GetScrollWheels();
for (int j = 0; j < _scrollWheelCount; j++)
{
scrollWheels2[j] = scrollWheels[j];
}
Position = mouse.Position;
}
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.