X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2FIVideoDriver.cpp;h=839db75e862d39eca3ae617bf2b729ccd11e6398;hb=a8ec20de5146479a15d388393b37bbf3e346f619;hp=6f19e9fe71369ad10d709b8927f86c5575205c90;hpb=a59c8c830960e4937ea29584ce7500a6603ab428;p=guile-irrlicht.git diff --git a/src/IVideoDriver.cpp b/src/IVideoDriver.cpp index 6f19e9f..839db75 100644 --- a/src/IVideoDriver.cpp +++ b/src/IVideoDriver.cpp @@ -22,6 +22,7 @@ #include #include #include "IVideoDriver.h" +#include "wrapped.h" extern "C" { @@ -31,33 +32,8 @@ extern "C" { init_video_driver_type (); } - static SCM video_driver_type; - - void - init_video_driver_type (void) - { - SCM name, slots; - scm_t_struct_finalize finalizer; - - name = scm_from_utf8_symbol ("video-driver"); - slots = scm_list_1 (scm_from_utf8_symbol ("data")); - finalizer = NULL; - - video_driver_type = - scm_make_foreign_object_type (name, slots, finalizer); - } - - SCM - wrap_video_driver (irr::video::IVideoDriver* driver) - { - return scm_make_foreign_object_1 (video_driver_type, driver); - } - - irr::video::IVideoDriver* - unwrap_video_driver (SCM driver_obj) - { - scm_assert_foreign_object_type (video_driver_type, driver_obj); - return (irr::video::IVideoDriver*)scm_foreign_object_ref (driver_obj, 0); - } + DEFINE_WRAPPED_TYPE (irr::video::IVideoDriver*, "video-driver", + init_video_driver_type, video_driver_p, + wrap_video_driver, unwrap_video_driver); }