Yeah I just fund it in the source code.
There is very bad change in Event.h
A new value was added in 2.3 to the middle of event list:
51 sfEvtMouseWheelMoved,
52 sfEvtMouseWheelScrolled, // <= added line - very bad practice
53 sfEvtMouseButtonPressed,
So, I inserted this one into EventType and it works OK:
/// <summary>Event triggered when the mouse wheel is moved</summary>
MouseWheelMoved,
/// <summary>Event triggered when the mouse wheel is scrolled</summary>
MouseWheelScrolled,
/// <summary>Event triggered when a mouse button is pressed</summary>
MouseButtonPressed,
Actually it's bad practice to insert new code into the middle of list.
It's better to add it into the end of list. Otherwise it will cause version compatibility issues...
Is there any other changes like this for enums?
PS: at a glance it seems that with this change SFML.NET works OK with CSFML 2.3. And I it works a little faster, fps for my test scene grows up from 350 to 450
Update: I compared source code of CSFML 2.2 and CSFML 2.3 and found that there is some changes in the type of function argument. It's not critical for x86 platform. But there is mistake for p/invoke declarations. There is used uint type, which is fixed size 32 bit for all platform in C#. But in C it is declared as size_t.
So, I fixed it with declaring UIntPtr in C#.
This fix affects Shape, Window, Texture and VertexArray.
Also there are minor changes with adding getter of native handle for texture and shader.
Also there are two changes: new mouse wheel event with new struct (the old one still works but it was marked as deprecated) and new field in ContextSettings.
I implemented new changes and fixed p/invoke, so now I have complete SFML.NET binding for CSFML 2.3!
I tested it on different systems and it works better than CSFML 2.2. Better fps, no app crash issue under windows xp and now it allows to handle vertical and horizontal mouse wheels.