X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fdevice.cpp;h=ba00f3960f86c821a6ec22ec4420d06d5b8966ba;hb=357f279e004c6257a160205835c06c283d317ef7;hp=ed551705389337c09e789d110d54ba0ac2f6ac1b;hpb=98052b04792129db97286fdd77ef3b0de8912286;p=guile-irrlicht.git diff --git a/src/device.cpp b/src/device.cpp index ed55170..ba00f39 100644 --- a/src/device.cpp +++ b/src/device.cpp @@ -25,12 +25,10 @@ #include "dimension2d.h" #include "driver-types.h" #include "gsubr.h" -#include "wchar.h" - +#include "wrapped.h" using namespace irr; - SCM irr_createDevice (SCM device_type, SCM window_size, @@ -47,139 +45,123 @@ irr_createDevice (SCM device_type, scm_to_bool (fullscreen), scm_to_bool (stencilbuffer), scm_to_bool (vsync), - (IEventReceiver*)scm_to_pointer (receiver)); + (IEventReceiver*)scm_to_irr_pointer (receiver)); return scm_from_pointer ((void*)device, NULL); } - SCM IrrlichtDevice_getCursorControl (SCM device) { gui::ICursorControl* cursor_control = - ((IrrlichtDevice*)scm_to_pointer (device))->getCursorControl (); + ((IrrlichtDevice*)scm_to_irr_pointer (device))->getCursorControl (); return scm_from_pointer ((void*)cursor_control, NULL); } - SCM IrrlichtDevice_getFileSystem (SCM device) { io::IFileSystem* file_system = - ((IrrlichtDevice*)scm_to_pointer (device))->getFileSystem (); + ((IrrlichtDevice*)scm_to_irr_pointer (device))->getFileSystem (); return scm_from_pointer ((void*)file_system, NULL); } - SCM IrrlichtDevice_getGUIEnvironment (SCM device) { gui::IGUIEnvironment* gui_env = - ((IrrlichtDevice*)scm_to_pointer (device))->getGUIEnvironment (); + ((IrrlichtDevice*)scm_to_irr_pointer (device))->getGUIEnvironment (); return scm_from_pointer ((void*)gui_env, NULL); } - SCM IrrlichtDevice_getSceneManager (SCM device) { scene::ISceneManager* manager = - ((IrrlichtDevice*)scm_to_pointer (device))->getSceneManager (); + ((IrrlichtDevice*)scm_to_irr_pointer (device))->getSceneManager (); return scm_from_pointer ((void*)manager, NULL); } - SCM IrrlichtDevice_getTimer (SCM device) { ITimer* timer = - ((IrrlichtDevice*)scm_to_pointer (device))->getTimer (); + ((IrrlichtDevice*)scm_to_irr_pointer (device))->getTimer (); return scm_from_pointer ((void*)timer, NULL); } - SCM IrrlichtDevice_getVideoDriver (SCM device) { video::IVideoDriver* driver = - ((IrrlichtDevice*)scm_to_pointer (device))->getVideoDriver (); + ((IrrlichtDevice*)scm_to_irr_pointer (device))->getVideoDriver (); return scm_from_pointer ((void*)driver, NULL); } - SCM IrrlichtDevice_isWindowActive (SCM device) { return scm_from_bool - (((IrrlichtDevice*)scm_to_pointer (device))->isWindowActive ()); + (((IrrlichtDevice*)scm_to_irr_pointer (device))->isWindowActive ()); } - SCM IrrlichtDevice_run (SCM device) { return scm_from_bool - (((IrrlichtDevice*)scm_to_pointer (device))->run ()); + (((IrrlichtDevice*)scm_to_irr_pointer (device))->run ()); } - template SCM IrrlichtDevice_setEventReceiver (SCM device, SCM receiver) { - ((IrrlichtDevice*)scm_to_pointer (device))-> - setEventReceiver ((TEventReceiver)scm_to_pointer (receiver)); + ((IrrlichtDevice*)scm_to_irr_pointer (device))-> + setEventReceiver ((TEventReceiver)scm_to_irr_pointer (receiver)); return SCM_UNSPECIFIED; } - SCM IrrlichtDevice_setResizable (SCM device, SCM resize) { - ((IrrlichtDevice*)scm_to_pointer (device))-> + ((IrrlichtDevice*)scm_to_irr_pointer (device))-> setResizable (scm_to_bool (resize)); return SCM_UNSPECIFIED; } - SCM IrrlichtDevice_setWindowCaption (SCM device, SCM text) { - ((IrrlichtDevice*)scm_to_pointer (device))-> - setWindowCaption (scm_to_wide_char_string (text)); + wchar_t* wtext = (wchar_t*) scm_to_utf32_string (text); + ((IrrlichtDevice*)scm_to_irr_pointer (device))->setWindowCaption (wtext); + free (wtext); return SCM_UNSPECIFIED; } - SCM IrrlichtDevice_yield (SCM device) { - ((IrrlichtDevice*)scm_to_pointer (device))->yield (); + ((IrrlichtDevice*)scm_to_irr_pointer (device))->yield (); return SCM_UNSPECIFIED; } - -extern "C" { - - void - init_device (void) - { - DEFINE_GSUBR ("createDevice", 7, 0, 0, irr_createDevice); - DEFINE_GSUBR ("IrrlichtDevice_getCursorControl", 1, 0, 0, IrrlichtDevice_getCursorControl); - DEFINE_GSUBR ("IrrlichtDevice_getFileSystem", 1, 0, 0, IrrlichtDevice_getFileSystem); - DEFINE_GSUBR ("IrrlichtDevice_getGUIEnvironment", 1, 0, 0, IrrlichtDevice_getGUIEnvironment); - DEFINE_GSUBR ("IrrlichtDevice_getSceneManager", 1, 0, 0, IrrlichtDevice_getSceneManager); - DEFINE_GSUBR ("IrrlichtDevice_getTimer", 1, 0, 0, IrrlichtDevice_getTimer); - DEFINE_GSUBR ("IrrlichtDevice_getVideoDriver", 1, 0, 0, IrrlichtDevice_getVideoDriver); - DEFINE_GSUBR ("IrrlichtDevice_isWindowActive", 1, 0, 0, IrrlichtDevice_isWindowActive); - DEFINE_GSUBR ("IrrlichtDevice_run", 1, 0, 0, IrrlichtDevice_run); - DEFINE_GSUBR ("IrrlichtDevice_setEventReceiver_IEventReceiver", 2, 0, 0, - IrrlichtDevice_setEventReceiver); - DEFINE_GSUBR ("IrrlichtDevice_setResizable", 2, 0, 0, IrrlichtDevice_setResizable); - DEFINE_GSUBR ("IrrlichtDevice_setWindowCaption", 2, 0, 0, IrrlichtDevice_setWindowCaption); - DEFINE_GSUBR ("IrrlichtDevice_yield", 1, 0, 0, IrrlichtDevice_yield); - } - +void +init_device (void) +{ + DEFINE_GSUBR ("createDevice", 7, 0, 0, irr_createDevice); + DEFINE_GSUBR ("IrrlichtDevice_getCursorControl", 1, 0, 0, IrrlichtDevice_getCursorControl); + DEFINE_GSUBR ("IrrlichtDevice_getFileSystem", 1, 0, 0, IrrlichtDevice_getFileSystem); + DEFINE_GSUBR ("IrrlichtDevice_getGUIEnvironment", 1, 0, 0, IrrlichtDevice_getGUIEnvironment); + DEFINE_GSUBR ("IrrlichtDevice_getSceneManager", 1, 0, 0, IrrlichtDevice_getSceneManager); + DEFINE_GSUBR ("IrrlichtDevice_getTimer", 1, 0, 0, IrrlichtDevice_getTimer); + DEFINE_GSUBR ("IrrlichtDevice_getVideoDriver", 1, 0, 0, IrrlichtDevice_getVideoDriver); + DEFINE_GSUBR ("IrrlichtDevice_isWindowActive", 1, 0, 0, IrrlichtDevice_isWindowActive); + DEFINE_GSUBR ("IrrlichtDevice_run", 1, 0, 0, IrrlichtDevice_run); + DEFINE_GSUBR ("IrrlichtDevice_setEventReceiver_IEventReceiver", 2, 0, 0, + IrrlichtDevice_setEventReceiver); + DEFINE_GSUBR ("IrrlichtDevice_setResizable", 2, 0, 0, IrrlichtDevice_setResizable); + DEFINE_GSUBR ("IrrlichtDevice_setWindowCaption", 2, 0, 0, IrrlichtDevice_setWindowCaption); + DEFINE_GSUBR ("IrrlichtDevice_yield", 1, 0, 0, IrrlichtDevice_yield); }