changeset 144:01881f9296fa

add: window-resize check
author Sam <sam@basx.dev>
date Tue, 25 Apr 2023 18:32:23 +0700
parents 8ce634aa6ea6
children a4e6e76128e6
files src/semicongine/engine.nim
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/semicongine/engine.nim	Tue Apr 25 18:24:18 2023 +0700
+++ b/src/semicongine/engine.nim	Tue Apr 25 18:32:23 2023 +0700
@@ -25,6 +25,7 @@
     mouseWasReleased: set[MouseButton]
     mousePosition: Vec2f
     eventsProcessed: uint64
+    windowWasResized: bool
   Engine* = object
     running*: bool
     device: Device
@@ -106,9 +107,9 @@
   engine.input.keyWasReleased = {}
   engine.input.mouseWasPressed = {}
   engine.input.mouseWasReleased = {}
-  var
-    killed = false
-    resized = false
+  engine.input.windowWasResized = false
+
+  var killed = false
   for event in engine.window.pendingEvents():
     inc engine.input.eventsProcessed
     if engine.eventHandler != nil:
@@ -117,7 +118,7 @@
       of Quit:
         killed = true
       of ResizedWindow:
-        resized = true
+        engine.input.windowWasResized = true
       of KeyPressed:
         engine.input.keyWasPressed.incl event.key
         engine.input.keyIsDown.incl event.key
@@ -136,7 +137,7 @@
     engine.running = false
     if engine.exitHandler != nil:
       engine.exitHandler(engine)
-  if resized and engine.resizeHandler != nil:
+  if engine.input.windowWasResized and engine.resizeHandler != nil:
     engine.resizeHandler(engine)
 
 func keyIsDown*(engine: Engine, key: Key): auto = key in engine.input.keyIsDown
@@ -150,3 +151,4 @@
 func framesRendered*(engine: Engine): auto = engine.renderer.framesRendered
 func gpuDevice*(engine: Engine): Device = engine.device
 func getWindow*(engine: Engine): auto = engine.window
+func windowWasResized*(engine: Engine): auto = engine.input.windowWasResized