🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

ThoughtStuff.WebGLTemplate

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ThoughtStuff.WebGLTemplate

A project template for creating WebGL-based WASM browser apps in C#.

2.0.0
Source
NuGet
Version published
Maintainers
1
Created
Source

.NET WebGL Template

A starting point for creating .NET projects that target WebAssembly and leverage WebGL
dotnet new webgl

Game Framework

This template includes a very basic GameFramework to help you get started. You only need to implement IGame and pass your Game instance to the GameController in Program.cs. See ExampleGame.cs for a simple example. See the Examples folder for more examples.

That said, you are not required to use the GameFramework. You can delete the GameFramework folder and implement your own rendering and update logic.

The IGame interface provides some "lifecycle" methods for you to implement for initialization, input, updates and rendering. These methods are called by the GameController at the appropriate times. See IGame.cs for documentation.

Invoking WebGL functions is straightforward via the global static GL class.

GL.ClearColor(0.39f, 0.58f, 0.93f, 1.0f);
GL.Clear(GL.COLOR_BUFFER_BIT);

Interop

The GL context is effectively exported by JS as follows:

const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
setModuleImports("main.js", { gl });

And imported in C# as in this example:

static partial class GL
{
    [JSImport("gl.clearColor", "main.js")]
    internal static partial void ClearColor(float red, float green, float blue, float alpha);
}

So this approach is limited to one Canvas context.

Keywords

dotnet-new

FAQs

Package last updated on 17 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts