]> git.jsancho.org Git - guile-irrlicht.git/commitdiff
get-timer get-time
authorJavier Sancho <jsf@jsancho.org>
Sun, 12 Apr 2020 16:42:44 +0000 (18:42 +0200)
committerJavier Sancho <jsf@jsancho.org>
Sun, 12 Apr 2020 16:42:44 +0000 (18:42 +0200)
Makefile.am
src/device.cpp
src/device.h
src/guile-irrlicht.cpp
src/timer.cpp [new file with mode: 0644]
src/timer.h [new file with mode: 0644]

index c99cd472d8a7b96f2665220c76b249b6ff74d4f1..c47bdfcc0b75a1d40fdea51598638b16135f2b28 100644 (file)
@@ -58,6 +58,7 @@ libguile_irrlicht_la_SOURCES = \
   src/scene-node.cpp \
   src/scene-node-animator.cpp \
   src/texture.cpp \
+  src/timer.cpp \
   src/vector2d.cpp \
   src/vector3d.cpp \
   src/vertex3d.cpp \
index f9c0d6a11247e2ebc703b2bcfbefb928094e38ee..96442c7e3797300654efd3964cb0901c94b3bdd8 100644 (file)
@@ -27,6 +27,7 @@
 #include "driver-types.h"
 #include "event-receiver.h"
 #include "gsubr.h"
+#include "timer.h"
 #include "wchar.h"
 #include "wrapped.h"
 
@@ -37,6 +38,7 @@ extern "C" {
   {
     init_device_type ();
     DEFINE_GSUBR ("create-device", 0, 0, 1, irr_createDevice);
+    DEFINE_GSUBR ("get-timer", 1, 0, 0, irr_getTimer);
     DEFINE_GSUBR ("is-window-active?", 1, 0, 0, irr_isWindowActive);
     DEFINE_GSUBR ("run", 1, 0, 0, irr_run);
     DEFINE_GSUBR ("set-window-caption!", 2, 0, 0, irr_setWindowCaption);
@@ -80,6 +82,13 @@ extern "C" {
     return wrap_device (device);
   }
 
+  SCM
+  irr_getTimer (SCM wrapped_device)
+  {
+    irr::IrrlichtDevice* device = unwrap_device (wrapped_device);
+    return wrap_timer (device->getTimer ());
+  }
+
   SCM
   irr_isWindowActive (SCM wrapped_device)
   {
index ec5875acb9d0c5c29a606aef2b8336554350a75e..1a9046d6aed5c0da5c2aba44d91d851e8ee0d2c7 100644 (file)
@@ -37,6 +37,9 @@ extern "C" {
   SCM
   irr_createDevice (SCM rest);
 
+  SCM
+  irr_getTimer (SCM wrapped_device);
+
   SCM
   irr_isWindowActive (SCM wrapped_device);
 
index 99b9928d837e911d35d8cf1c6777a1b876d39737..29fb2fbdb2961200ebe08f70e7d71698e99917e8 100644 (file)
@@ -47,6 +47,7 @@
 #include "scene-node.h"
 #include "scene-node-animator.h"
 #include "texture.h"
+#include "timer.h"
 #include "vertex3d.h"
 #include "video-driver.h"
 #include "wchar.h"
@@ -81,6 +82,7 @@ extern "C" {
     init_scene_node ();
     init_scene_node_animator ();
     init_texture ();
+    init_timer ();
     init_vertex3d ();
     init_video_driver ();
 
diff --git a/src/timer.cpp b/src/timer.cpp
new file mode 100644 (file)
index 0000000..0022f10
--- /dev/null
@@ -0,0 +1,48 @@
+/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
+
+   Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
+
+   This file is part of guile-irrlicht.
+
+   guile-irrlicht is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as
+   published by the Free Software Foundation; either version 3 of the
+   License, or (at your option) any later version.
+
+   guile-irrlicht is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with guile-irrlicht. If not, see
+   <http://www.gnu.org/licenses/>.
+*/
+
+#include <irrlicht/irrlicht.h>
+#include <libguile.h>
+
+#include "gsubr.h"
+#include "timer.h"
+#include "wrapped.h"
+
+extern "C" {
+
+  void
+  init_timer (void)
+  {
+    init_timer_type ();
+    DEFINE_GSUBR ("get-time", 1, 0, 0, irr_getTime);
+  }
+
+  DEFINE_WRAPPED_TYPE (irr::ITimer*, "timer",
+                       init_timer_type, timer_p,
+                       wrap_timer, unwrap_timer);
+
+  SCM
+  irr_getTime (SCM wrapped_timer)
+  {
+    return scm_from_uint32 (unwrap_timer (wrapped_timer)->getTime());
+  }
+
+}
diff --git a/src/timer.h b/src/timer.h
new file mode 100644 (file)
index 0000000..0187e94
--- /dev/null
@@ -0,0 +1,42 @@
+/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine
+
+   Copyright (C) 2020 Javier Sancho <jsf@jsancho.org>
+
+   This file is part of guile-irrlicht.
+
+   guile-irrlicht is free software; you can redistribute it and/or modify
+   it under the terms of the GNU Lesser General Public License as
+   published by the Free Software Foundation; either version 3 of the
+   License, or (at your option) any later version.
+
+   guile-irrlicht is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with guile-irrlicht. If not, see
+   <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __GUILE_IRRLICHT_TIMER_H_INCLUDED__
+#define __GUILE_IRRLICHT_TIMER_H_INCLUDED__
+
+#include <irrlicht/irrlicht.h>
+#include <libguile.h>
+#include "wrapped.h"
+
+extern "C" {
+
+  void
+  init_timer (void);
+
+  DECLARE_WRAPPED_TYPE (irr::ITimer*, init_timer_type,
+                        timer_p, wrap_timer, unwrap_timer);
+
+  SCM
+  irr_getTime (SCM wrapped_timer);
+
+}
+
+#endif