s2 event loop passes time variable
This commit is contained in:
parent
d6882feb15
commit
95758ed7c6
15
src/main.ml
15
src/main.ml
|
@ -19,20 +19,18 @@ let main () =
|
|||
let scene = Scene.load "main" ~tg ~sg in
|
||||
let root = Scene.get scene "root" in
|
||||
|
||||
let render () =
|
||||
let render time =
|
||||
begin
|
||||
(* Update *)
|
||||
|
||||
let time = Sdl.get_ticks () |> Int32.to_int in
|
||||
let tf = TG.model (Scene.transform root) in
|
||||
begin
|
||||
let tx =
|
||||
Float_infix.(
|
||||
Float.sin (flt time / 1000.0 * 2.0) * 300.0
|
||||
Float.sin (time * 2.0) * 300.0
|
||||
+ 512.0
|
||||
)
|
||||
in
|
||||
let ty = 400.0 in
|
||||
let tf = TG.model (Scene.transform root) in
|
||||
Mat2A.set tf ~tx ~ty ~sx:1.0 ~sy:1.0
|
||||
end;
|
||||
|
||||
|
@ -48,7 +46,12 @@ let main () =
|
|||
end
|
||||
in
|
||||
Window.event_loop window ~render;
|
||||
info (fun m -> m "quitting")
|
||||
|
||||
begin
|
||||
info (fun m -> m "quitting");
|
||||
Window.destroy window;
|
||||
Renderer.destroy ren;
|
||||
end
|
||||
|
||||
let () =
|
||||
Ohlog.init () ~min_level:DEBUG;
|
||||
|
|
|
@ -19,6 +19,8 @@ let make ~title =
|
|||
let event_loop window ~render =
|
||||
let event = Sdl.Event.create () in
|
||||
let some_event = Some event in
|
||||
let time = ref 0.0 in
|
||||
|
||||
try
|
||||
Sdl.show_window window;
|
||||
while true do
|
||||
|
@ -28,7 +30,11 @@ let event_loop window ~render =
|
|||
| _ ->
|
||||
trace (fun m -> m "uncaught event (%d)" Sdl.Event.(get event typ))
|
||||
done;
|
||||
render ()
|
||||
|
||||
time := Int32.to_float (Sdl.get_ticks ()) /. 1000.0;
|
||||
render !time;
|
||||
done
|
||||
with Quit ->
|
||||
()
|
||||
|
||||
let destroy = Sdl.destroy_window
|
||||
|
|
Loading…
Reference in New Issue