Gondwana Game Engine Development (master) - 2.6.1
Gondwana is a cross-platform 2.5D game and rendering engine written in C#/.NET 8. It provides fine-grained control over rendering, timing, and scene composition, with built-in support for parallax, z-ordering, pixel overhang, collision detection, and particle effects. Gondwana targets desktop and web platforms using SkiaSharp for graphics and pluggable audio backends for desktop and browser targets.
Loading...
Searching...
No Matches
EngineExtensions.cs
7using Microsoft.Extensions.Logging;
8
9namespace Gondwana.Blazor;
10
14public static class EngineExtensions
15{
23 public static void InitializeBlazorKeyboardAdapter(this Engine engine, BlazorBitmapRenderSurfaceComponent component)
24 => InitializeBlazorKeyboardAdapter(engine, (BlazorRenderSurfaceComponentBase)component);
25
32 public static void InitializeBlazorKeyboardAdapter(this Engine engine, BlazorRenderSurfaceComponentBase component)
33 {
34 Engine.Logger.LogInformation("Initializing BlazorKeyboardAdapter...");
35
36 if (component == null)
37 {
38 Engine.Logger.LogError("BlazorKeyboardAdapter initialization failed: Component cannot be null.");
39 throw new ArgumentNullException(nameof(component));
40 }
41
42 KeyboardEventPoller.Initialize(new BlazorKeyboardAdapter(component));
43 }
44
52 public static void InitializeBlazorMouseAdapter(this Engine engine, BlazorBitmapRenderSurfaceComponent component, MouseEventConfiguration? mouseEventConfiguration = null)
53 => InitializeBlazorMouseAdapter(engine, (BlazorRenderSurfaceComponentBase)component, mouseEventConfiguration);
54
62 public static void InitializeBlazorMouseAdapter(this Engine engine, BlazorRenderSurfaceComponentBase component, MouseEventConfiguration? mouseEventConfiguration = null)
63 {
64 Engine.Logger.LogInformation("Initializing BlazorMouseAdapter...");
65
66 if (component == null)
67 {
68 Engine.Logger.LogError("BlazorMouseAdapter initialization failed: Component cannot be null.");
69 throw new ArgumentNullException(nameof(component));
70 }
71
72 MouseEventPoller.Initialize(new BlazorMouseAdapter(component), mouseEventConfiguration);
73 }
74
82 public static void InitializeBlazorTouchAdapter(this Engine engine, BlazorBitmapRenderSurfaceComponent component)
83 => InitializeBlazorTouchAdapter(engine, (BlazorRenderSurfaceComponentBase)component);
84
91 public static void InitializeBlazorTouchAdapter(this Engine engine, BlazorRenderSurfaceComponentBase component)
92 {
93 Engine.Logger.LogInformation("Initializing BlazorTouchAdapter...");
94
95 if (component == null)
96 {
97 Engine.Logger.LogError("BlazorTouchAdapter initialization failed: Component cannot be null.");
98 throw new ArgumentNullException(nameof(component));
99 }
100
101 engine.Input.TouchAdapter = new BlazorTouchAdapter(component);
102 }
103}