]> git.jsancho.org Git - guile-irrlicht.git/blobdiff - src/gui-in-out-fader.cpp
Some doc
[guile-irrlicht.git] / src / gui-in-out-fader.cpp
index fb8a9e3b512fd539ea858890c429ce71a3576b0b..ea296a532dfa0a08e36026493b2da32d551b6de0 100644 (file)
 
 #include <irrlicht/irrlicht.h>
 #include <libguile.h>
-
 #include "color.h"
+#include "gsubr.h"
 #include "gui-in-out-fader.h"
 #include "wrapped.h"
 
-extern "C" {
-
-  void
-  init_gui_in_out_fader (void)
-  {
-    init_gui_in_out_fader_type ();
-  }
-
-  DEFINE_WRAPPED_TYPE (irr::gui::IGUIInOutFader*, "gui-in-out-fader",
-                       init_gui_in_out_fader_type, gui_in_out_fader_p,
-                       wrap_gui_in_out_fader, unwrap_gui_in_out_fader);
-
-  SCM
-  irr_gui_IGUIInOutFader_setColor (SCM wrapped_in_out_fader,
-                                   SCM color,
-                                   SCM dest_color)
-  {
-    irr::gui::IGUIInOutFader* fader = unwrap_gui_in_out_fader (wrapped_in_out_fader);
-    if (scm_is_false (dest_color))
-      {
-        fader->setColor (scm_to_color (color));
-      }
-    else
-      {
-        fader->setColor (scm_to_color (color),
-                         scm_to_color (dest_color));
-      }
-    return SCM_UNSPECIFIED;
-  }
+using namespace irr;
+
+SCM
+IGUIInOutFader_setColor (SCM in_out_fader,
+                         SCM color,
+                         SCM dest_color)
+{
+  gui::IGUIInOutFader* fader = (gui::IGUIInOutFader*)scm_to_irr_pointer (in_out_fader);
+  if (dest_color == SCM_UNDEFINED)
+    {
+      fader->setColor (scm_to_color (color));
+    }
+  else
+    {
+      fader->setColor (scm_to_color (color),
+                       scm_to_color (dest_color));
+    }
+  return SCM_UNSPECIFIED;
+}
 
+void
+init_gui_in_out_fader (void)
+{
+  DEFINE_GSUBR ("IGUIInOutFader_setColor", 2, 1, 0, IGUIInOutFader_setColor);
 }