Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
48aa547
Rename Proposal - Enhanced Input Events.md to (Superseded) Proposal -…
Perksey Jan 29, 2022
a7b673d
Update Proposal - Multi-Backend Input.md
Perksey Jan 29, 2022
e48d7ea
Update Proposal - Multi-Backend Input.md
Perksey Jan 29, 2022
e9821d2
Update Proposal - Multi-Backend Input.md
Perksey Jan 29, 2022
976731d
Update Proposal - Generation of Library Sources and PInvoke Mechanism…
Perksey Jan 29, 2022
4454355
Update Proposal - Multi-Backend Input.md
Perksey Jan 29, 2022
8a17be2
Update Proposal - Multi-Backend Input.md
Perksey Jan 29, 2022
6e7861f
Update Proposal - Multi-Backend Input.md
Perksey Jan 29, 2022
1ee80f7
Update Proposal - Multi-Backend Input.md
Perksey Jan 29, 2022
ad85127
Update Proposal - 3.0 & 3.X Software Development Plan.md
Perksey Jan 29, 2022
d3480de
Update Proposal - Multi-Backend Input.md
Perksey Jan 29, 2022
26e44a4
Update Proposal - 3.0 & 3.X Software Development Plan.md
Perksey Jan 29, 2022
4784cfc
Update Proposal - 3.0 & 3.X Software Development Plan.md
Perksey Jan 29, 2022
9916552
Update Proposal - Windowing 3.0.md
Perksey Jan 30, 2022
5817955
Update Proposal - Windowing 3.0.md
Perksey Jan 30, 2022
766bf35
Update Proposal - Multi-Backend Input.md
Perksey Jan 30, 2022
79ec340
Apply suggestions from code review
Perksey Jan 30, 2022
54617fd
Apply suggestions from code review
Perksey Jan 31, 2022
69fc9b7
Big updates further separating states and devices
Perksey Jan 31, 2022
4da1ef9
Move ClipboardText to IKeyboard
Perksey Feb 1, 2022
7e65be3
Update Proposal - Multi-Backend Input.md
Perksey Feb 1, 2022
1d9dc4b
Update documentation/proposals/Proposal - Multi-Backend Input.md
Perksey Feb 1, 2022
8c9edfe
Add actors
Perksey Feb 5, 2022
9211949
Add clicks again
Perksey Feb 5, 2022
9c832e5
Update Proposal - Multi-Backend Input.md
Perksey Feb 5, 2022
071cccb
Add back connection changed
Perksey Feb 5, 2022
a4b3295
Remove Raisin
Perksey Feb 5, 2022
5a63b2e
IMouse -> IInputDevice for ConnectionChanged
Perksey Feb 5, 2022
fe7f7f4
Review fixes
Perksey Feb 9, 2022
267c739
Further clarification
Perksey Feb 9, 2022
d55a30c
Further clarification
Perksey Feb 9, 2022
85cfc90
Rename to IInputHandler
Perksey Feb 10, 2022
bd12bcc
Apply suggestions from self review
Perksey Feb 11, 2022
150e793
Update documentation/proposals/Proposal - Multi-Backend Input.md
Perksey Feb 11, 2022
0989ed4
Update documentation/proposals/Proposal - Multi-Backend Input.md
Perksey Feb 12, 2022
1385b3c
Update Proposal - Multi-Backend Input.md
Perksey Feb 12, 2022
0a8e3b9
Update documentation/proposals/Proposal - Multi-Backend Input.md
Perksey Feb 12, 2022
7fd7576
Remove Up lists
Perksey Feb 12, 2022
a4ecbeb
Fix usage example to compile
Perksey Feb 12, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,17 +21,16 @@ The key tenets of 3.0 are **portability**, **maintainability**, **usability**, a
- Allow Silk.NET's rich abstractions to be integrated into other frameworks rather than being completely standalone.
- WPF, WinForms, MAUI, Avalonia (tenet: usability)
- Rewrite windowing to be more portable and facilitate true write-once-run-everywhere.
- For more information, see [the Windowing 3.0 proposal](Proposal - Windowing 3.0.md). (tenet: portability)
- For more information, see [the Windowing 3.0 proposal](Proposal%20-%20Windowing%203.0.md). (tenet: portability)
- Remove the bulk of our bindings generation code in favour of more mature alternatives
- For more information, see [the SilkTouch 3.0 proposal](Proposal - Generation of Library Sources and PInvoke Mechanisms.md). (tenet: maintainability)
- For more information, see [the SilkTouch 3.0 proposal](Proposal%20-%20Generation%20of%20Library%20Sources%20and%20PInvoke%20Mechanisms.md). (tenet: maintainability)
- Accelerate our maths library using SIMD hardware intrinsics
- For more information, see [the Vectorization SIMD proposal](Proposal - Vectorization - SIMD.md). (tenet: performance)
- Enhance our input library to add more functionality and future-proof it against future functionality additions.
- For more information, see [the Enhanced Input Events proposal](Proposal - Enhanced Input Events.md). (tenet: maintainability)
- Refactor our input library to work in multiple scenarios and environments
- For more information, see [the Multi-Backend Input proposal](Proposal - Multi-Backend Input.md). (tenet: usability)
- For more information, see [the Vectorization SIMD proposal](Proposal%20-%20Vectorization%20-%20SIMD.md). (tenet: performance)
- Redesign our input library to work in multiple scenarios and environments, as well as be less prone to breaking changes.
- For more information, see [the Multi-Backend Input proposal](Proposal%20-%20Multi-Backend%20Input.md). (tenet: usability)

Silk.NET 3.0 presents us with an opportunity to rethink the entire library taking into account everything we've learnt over the past 2 years of the project's development.

## Development Roadmap

Note that this development roadmap does not take into account unit tests, only functional tests such as experiments. The team should of course strive to add as many tests as possible where possible.
Expand All @@ -47,7 +46,7 @@ Before we can do anything, we need to get our brand new generators up and runnin
- No development on Maths for this preview.
- Exclusive support for .NET 6

3.0 Preview 1 is not a production-ready preview and is very experimental. This preview should aim to release in early September.
3.0 Preview 1 is not a production-ready preview and is very experimental.

### 3.0 Preview 2

Expand All @@ -58,7 +57,7 @@ Now that we've got an initial preview out to show what our aims are, we can star
- Android support has been restored for Windowing and Input, and have received initial testing on this platform.
- No development on Maths for this preview.

3.0 Preview 2 is not a production-ready preview and is very experimental. This preview should aim to release in late September.
3.0 Preview 2 is not a production-ready preview and is very experimental.

### 3.0 Preview 3

Expand All @@ -69,7 +68,7 @@ By this preview, the groundwork has been established for 3.0 and we should ensur
- iOS support has been added for Windowing and Input, and have received initial testing on this platform.
- If time permits, a start has been made on the SIMD APIs in Maths. No work has been done on integrating it into the other Maths types.

3.0 Preview 3 is not a production-ready preview and is very experimental. This preview should aim to release in early October.
3.0 Preview 3 is not a production-ready preview and is very experimental.

### 3.0 Preview 4

Expand All @@ -79,23 +78,23 @@ This is the first "production-ready" preview and we want users to start integrat
- SIMD APIs in Maths have been complete, and work has started to integrate them into the other Maths types in the most common cases.
- Ample work has been done to migrate 2.0 code to 3.0 code to evaluate differences in public API, fixing them where we deem necessary.

3.0 Preview 4 is a production-ready preview and users are encouraged to start integrating this preview into their code. This preview should aim to release in late October.
3.0 Preview 4 is a production-ready preview and users are encouraged to start integrating this preview into their code.

### 3.0 Preview 5

This is the last preview and is primarily a bugfix release. All breaking changes should've been done in previous previews, but if this is not the case all forseeable breaking must be 100% done in this preview. In this version:
- Bugfixes from 3.0 Preview 4
- A windowing integration for MAUI has been developed and has at least basic OpenGL(ES) support in a state that is as high-performance and as smoothed-out as possible.
- If time permits, a windowing integration for Avalonia has been developed and has at least basic OpenGL(ES) support. If there is not enough time, this can be pushed to 3.X.
- SIMD APIs should be integrated into Maths in as many common cases as possible. Ongoing performance improvements may be done in 3.X. This preview should aim to release in early November.
- SIMD APIs should be integrated into Maths in as many common cases as possible. Ongoing performance improvements may be done in 3.X.

## Problems identified in past development

- We have severely lacking documentation
- The intention is that all developers of large amounts of code write implementation documentation and/or "orientation guides" for their codebases informing readers of all major things there is to know in their code.
- We should also write documentation containing examples on using as many features of the surface APIs as possible \[for high level utilities\]
- We will enforce XML documentation in all manually-written utilities and as much as possible in bindings.
- If time permits, we should productionize our website powered by Raisin.
- If time permits, we should productionize our website powered by Statiq + our custom API reference generator.
- There's not a lot of planning
- We have solved this in the form of the proposal you are reading and all linked proposals: getting all the design done now and documented now, to prevent design debates later down the line. This should reduce friction when actually working on the library.
- We have been keeping the working group and key stakeholders in the loop with the 3.0 kickoff (again, see this proposal you are reading)
Expand Down Expand Up @@ -156,7 +155,7 @@ All other folders will contain documentation targeted at users for using specifi

Silk.NET has been proven to excel at binding to OpenGL with games and applications such as [Project Hedra](https://projecthedra.com), a game made by @maxilevi; and [a clone of The Settlers](https://github.com/Pyrdacor/Freeserf.Net) made by @Pyrdacor.

One thing we want to place an emphasis on is our commitment to actually keeping Silk.NET up-to-date. The schedule will be that on the **first Friday of the month**: The working group will evaluate recent changes with the Silk.NET codebase and related upstream resources. If the working group warrants that a patch fix is needed, a patch will be pushed to NuGet on this day.
One thing we want to place an emphasis on is our commitment to actually keeping Silk.NET up-to-date. The schedule will be that on the **first Friday of the month** the bindings will be regenerated and a patch released containing all the changes since the last patch.

We have a lot of bindings by now and the libraries we bind to change all the time. As such, monthly updates are critical to ensure our bindings are regenerated and are as up-to-date as possible. Bugfixes found over the month will be swept up in these monthly updates.

Expand Down
Loading