Skip to content

Commit eadca3c

Browse files
committed
Add window frame buffer resize handling
- Implemented event handling for window frame buffer resizing in Camera.cs, including aspect ratio calculation and logging. - Added OnWindowFrameBufferResize event and handler in EventHandler.cs. - Updated IWindowEventHandler interface to include new resize event and handler. - Modified WindowEventHandler.cs to invoke the new resize handler with updated dimensions.
1 parent c7506f6 commit eadca3c

5 files changed

Lines changed: 16 additions & 1 deletion

File tree

‎SharedLibrary/Cameras/Camera.cs‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ public Camera(IEventHandler eventHandler)
3030
//_eventHandler.OnMouseMove += (this as IMouseEventListener).OnMouseMove;
3131
//_eventHandler.OnMouseScrollWheel += (this as IMouseEventListener).OnMouseWheel;
3232
_eventHandler.OnKeyBoardKeyDown += (this as IKeyBoardEventListener).OnKeyBoardKeyDown;
33+
_eventHandler.OnWindowFrameBufferResize += (sender, e) =>
34+
{
35+
AspectRatio = e.X / e.Y;
36+
Console.WriteLine($"Aspect Ratio Updated: {AspectRatio}");
37+
};
3338
}
3439

3540
void IMouseEventListener.OnMouseMove(object sender, (Vector2 Position, Vector2 LastMousePosition) e)

‎SharedLibrary/Event/Handler/EventHandler.cs‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ public class EventHandler : IEventHandler
99
public event EventHandler<(float x, float y)> OnMouseScrollWheel;
1010
public event EventHandler<string> OnKeyBoardKeyDown;
1111
public event EventHandler<double> OnWindowUpdate;
12+
public event EventHandler<Vector2> OnWindowFrameBufferResize;
1213
public void OnMouseMoveHandler((Vector2 Position, Vector2 LastMousePosition) e)
1314
{
1415
OnMouseMove?.Invoke(this, e);
@@ -27,4 +28,9 @@ public void OnWindowUpdateUpdateHandler(double dt)
2728
{
2829
OnWindowUpdate?.Invoke(this,dt);
2930
}
31+
32+
public void OnWindowFrameBufferResizeHandler(Vector2 resize)
33+
{
34+
OnWindowFrameBufferResize?.Invoke(this, resize);
35+
}
3036
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
using System;
2+
using System.Numerics;
23

34
namespace SharedLibrary.Event.Handler;
45

56
public interface IWindowEventHandler
67
{
78
event EventHandler<double> OnWindowUpdate;
89
void OnWindowUpdateUpdateHandler(double dt);
10+
event EventHandler<Vector2> OnWindowFrameBufferResize;
11+
void OnWindowFrameBufferResizeHandler(Vector2 resize);
912
}

‎VendorPackage/Graphic/SilkDotNetLibrary/OpenGL/OpenGLContext.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,7 @@ private unsafe void RenderScene(double dt)
418418
#endregion
419419

420420
// Draw skybox as the last geometry (draw as last to prevent overdraw)
421-
//DrawSkyBox();
421+
DrawSkyBox();
422422

423423
var error = _gl.GetError();
424424
if (error != GLEnum.NoError)

‎VendorPackage/Graphic/SilkDotNetLibrary/OpenGL/Windows/WindowEventHandler.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ public void OnStop()
142142

143143
public void OnFrameBufferResize(Vector2D<int> resize)
144144
{
145+
_eventHandler.OnWindowFrameBufferResizeHandler(new Vector2(resize.X, resize.Y));
145146
_openGLContext.OnWindowFrameBufferResize(resize);
146147
}
147148

0 commit comments

Comments
 (0)