Skip to content
This repository has been archived by the owner on Feb 14, 2022. It is now read-only.
/ WebGL.NET Public archive

.NET binding for WebGL through WebAssembly

License

Notifications You must be signed in to change notification settings

EvergineTeam/WebGL.NET

Repository files navigation

Update November 13th, 2020

After noticing performance issues with this approach, we have moved to Emscripten's EGL one through static linking –which has resulted much faster–, using our existing OpenGL.NET binding. Wave Engine 3.0 preview 4 already contains these changes.

Our efforts will go in this direction and, surely, we will not maintain this repository as much as before. We are also working on WebGPU.NET, as the replacement for everything WebGL. However, WebGL.NET is still valid whenever performance is not the key (this article draws a red line on it).

WebGL.NET

Build Status Run Tests NuGet

.NET binding for WebGL through WebAssembly. See the samples running here.

If you want to jump in quickly, Your first WebGL.NET app will guide you step by step.

Installation instructions

Apart from adding the NuGet package, make a local copy of:

  • this packages folder, which contains mandatory NuGets from Mono still not published in nuget.org; and
  • this NuGet.config along your SLN/CSPROJ

Features

  • WebGL 1 & 2 support
  • API C#-ified to make .NET Developers feel at home

Who's using it?

Apart from serving Wave Engine 3.0 for the Web, it's being used in some other really nice projects, such like:

Debugging

Run this in browser's Console to monitor how many bridged objects there are in such moment:

BINDING.mono_wasm_object_registry

Thanks

  • @kjpou1, for your PRs improving performance overall, along with nice comments on how stuff work underneath