dotnet / dotnet/Silk.NET

Tracking issue for Developer Experience

Open
#738 1 comment 2 reactions 2 assignees Claimed by @ThomasMiz View on GitHub
area-Meta feature tracking issue / epic
Dominant language
C#
Stars
5.2k
Forks
477
Avg merge
3d 16h
Merged PRs (30d)
2

Description

# Summary of feature

This is a tracking issue for the various improvements to developer experience we want to make over the course of 2.X, to make getting started with Silk.NET much easier.

The main points identified:
- **Make trying out Silk.NET easier**
- We will create a Silk.NET Interactive extension for .NET Interactive, aiming to be usable in Jupyter. This will be a full IWindow implementation atop SwiftShader using ANGLE, EGL, ImageSharp, and SignalR on the server side and interact.js on the client side.
- The base of Silk.NET Interactive will also be reused to make a "Try Silk.NET" web experience powered by Azure Functions.
- **Make learning Silk.NET easier**
- We will create written, web versions of our tutorials in the repo for OpenGL using the aforementioned Silk.NET Interactive extension via Jupyter Notebooks.
- **Make using Silk.NET easier**
- This is pretty much already as easy as it can be without this being a whole work item unto itself, but creating pre-built binaries for common scenarios in OpenGL and OpenXR has been something we've noticed could be useful to our community.

# Development

- [ ] [Not Started] Blank Window `dotnet new` template - @ThomasMiz
- [ ] [Not Started] OpenGL `dotnet new` template - @ThomasMiz
- [x] [Done] CI automation & prebuilt binaries for SwiftShader - @Perksey
- [x] [Done] CI automation & prebuilt binaries for ANGLE - @Perksey
- [ ] [Not Started] Silk.NET.Interactive.Common containing the IWindow implementation and abstractions for the ANGLE/SwiftShader powered interactive experience - @Perksey
- [ ] [Not Started] Silk.NET.Interactive, the implementation of Silk.NET.Interactive.Common atop .NET Interactive. Supporting OpenGL and OpenGLES via ANGLE on SwiftShader. - @Perksey
- [ ] [Not Started] Port first chapter of OpenGL tutorials to Jupyter notebooks and the Silk.NET website. - _(unassigned)_
- [ ] [Not Started] Port second chapter of OpenGL tutorials to Jupyter notebooks and the Silk.NET website. - _(unassigned)_
- [ ] [Not Started] Port third chapter of OpenGL tutorials to Jupyter notebooks and the Silk.NET website. - _(unassigned)_
- [ ] [Not Started] CI automation & prebuilt binaries for OpenXR Loader - _(unassigned)_
- [ ] [Not Started] Create a specification for a Vulkan extension for attaching images to headless surfaces - _(unassigned)_
- [ ] [Not Started] Create a Vulkan extension layer implementing EXT_headless_surface and our extension - _(unassigned)_
- [ ] [Not Started] Add support for Vulkan in Silk.NET Interactive using the Vulkan loader with our extension ICD - _(unassigned)_

# Milestones
- [ ] Release with `dotnet new` templates
- [ ] Release with ANGLE & SwiftShader precompiled binaries
- [ ] Release with Silk.NET Interactive - OpenGL and OpenGLES in .NET Interactive.
- [ ] Release with Vulkan support in Silk.NET Interactive.

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.