Commit Graph

20 Commits (main)

Author SHA1 Message Date
cosmonaut 4dbd5a2cbe MSDF font rendering + improved resource tracking (#52)
This is a major rewrite of the Font system. MoonWorks now uses MSDF font rendering, which allows high quality rendering of fonts at arbitrary sizes.

We now ship default embedded shader binaries for Video and Font. If you replace them with shader binaries of the same name located in your base directory, those will be used instead.

Many improvements have been made to resource tracking to prevent memory corruption, particularly on shutdown.

You must be careful not to leak AudioResource classes in particular, as there isn't much we can automatically do to recover from this without potentially crashing your game.

Reviewed-on: #52
2023-12-15 18:46:43 +00:00
cosmonaut 2e890fd696 Remove x64 specification 2023-12-13 11:19:27 -08:00
cosmonaut fcd08fe231 .NET 8 2023-11-21 15:23:52 -08:00
cosmonaut 496eb670ab AV1 Video instead of Theora (#49)
VideoPlayer now takes AV1 video instead of Ogg Theora. This brings a significant decode speed improvement. The decoder now also operates in a threaded manner, which should prevent runtime stalls when fetching video frames.

Reviewed-on: #49
2023-06-07 21:18:44 +00:00
cosmonaut adeba633e5 csproj tweaks to support app publish 2023-05-22 18:28:13 -07:00
TheSpydog 05de9a4066 Make video shaders optional and search for them in the root output directory (#42)
Whenever the video shaders change, they can be rebuilt with refreshc and distributed alongside the moonlibs.

Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #42
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2023-01-21 23:37:01 +00:00
cosmonaut c43df10c2a vertex binding API improvements 2023-01-05 13:41:48 -08:00
cosmonaut 2c4e1b972a .NET 7 2022-11-30 10:01:09 -08:00
TheSpydog 49f852a822 Combine all dependencies into the main csproj (#21)
This removes the need for per-library dllmap logic and simplifies the build process.

Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
Reviewed-on: #21
Co-authored-by: TheSpydog <thespydog@noreply.example.org>
Co-committed-by: TheSpydog <thespydog@noreply.example.org>
2022-08-14 20:44:55 +00:00
cosmonaut efb9893aef Theora video support + audio improvements (#20)
- `SoundInstance.Play` no longer takes a loop parameter
- `SoundInstance.Stop` is split into `Stop` and `StopImmediate` instead of taking an immediate parameter
- Added `StreamingSoundSeekable` to better support streaming audio that does not support seek
- `StreamingSound` no longer has a Loop property, but `StreamingSoundSeekable` does
- abstract `StreamingSound.AddBuffer` renamed to `FillBuffer`
- `FillBuffer` is now provided with a native buffer to avoid an extra data copy
- `StreamingSound` buffer implementation optimized to avoid repeated alloc/frees

- added `Video` class which can load and play Theora (.ogv) streaming video/audio

Reviewed-on: #20
2022-08-02 21:04:12 +00:00
cosmonaut 61a6d0bdc0 Font Rendering (#18)
Adds a font rendering system based on Wellspring.

Reviewed-on: #18
2022-04-13 03:06:14 +00:00
cosmonaut 379bdcdcb1 bump moonworks target to .NET 6 2022-04-05 16:24:43 -07:00
cosmonaut a337b94dfa .NET 5 2021-07-23 14:33:16 -07:00
cosmonaut 87d615783e fix dll config copy 2021-03-01 16:53:29 -08:00
cosmonaut 2b41dbb37f add dll config 2021-03-01 16:48:38 -08:00
cosmonaut 2cabaa6186 replace Campari with MoonWorks.Graphics 2021-01-19 19:33:27 -08:00
cosmonaut 768bf38e3f starting audio implementation 2021-01-19 18:06:10 -08:00
cosmonaut dc3f320a49 fix csproj 2021-01-18 23:42:58 -08:00
cosmonaut 7d3932da9b initial input handling 2021-01-18 23:29:07 -08:00
cosmonaut f89907abf7 initial commit 2021-01-18 19:40:37 -08:00