- irr::IrrlichtDevice* device =
- irr::createDevice (scm_to_driver_type (deviceType),
- scm_to_dimension2d_u32 (windowSize),
- scm_to_uint32 (bits),
- scm_to_bool (fullscreen),
- scm_to_bool (stencilbuffer),
- scm_to_bool (vsync));
- return wrap_device (device);
+ IrrlichtDevice* device =
+ createDevice (scm_to_driver_type (device_type),
+ scm_to_dimension2d_u32 (window_size),
+ scm_to_uint32 (bits),
+ scm_to_bool (fullscreen),
+ scm_to_bool (stencilbuffer),
+ scm_to_bool (vsync),
+ (IEventReceiver*)scm_to_pointer (receiver));
+ return scm_from_pointer ((void*)device, NULL);
+ }
+
+ SCM
+ irr_IrrlichtDevice_getVideoDriver (SCM device)
+ {
+ video::IVideoDriver* driver =
+ ((IrrlichtDevice*)scm_to_pointer (device))->getVideoDriver ();
+ return scm_from_pointer ((void*)driver, NULL);
+ }
+
+ SCM
+ irr_IrrlichtDevice_setWindowCaption (SCM device,
+ SCM text)
+ {
+ ((IrrlichtDevice*)scm_to_pointer (device))->
+ setWindowCaption (scm_to_wide_char_string (text));
+ return SCM_UNSPECIFIED;
+ }
+
+ SCM
+ irr_getTimer (SCM wrapped_device)
+ {
+ irr::IrrlichtDevice* device = unwrap_device (wrapped_device);
+ return wrap_timer (device->getTimer ());
+ }
+
+ SCM
+ irr_isWindowActive (SCM wrapped_device)
+ {
+ irr::IrrlichtDevice* device = unwrap_device (wrapped_device);
+ return scm_from_bool (device->isWindowActive ());
+ }
+
+ SCM
+ irr_run (SCM wrapped_device)
+ {
+ irr::IrrlichtDevice* device = unwrap_device (wrapped_device);
+ return scm_from_bool (device->run ());
+ }
+
+ SCM
+ irr_setEventReceiver (SCM wrapped_device,
+ SCM receiver)
+ {
+ irr::IrrlichtDevice* device = unwrap_device (wrapped_device);
+ device->setEventReceiver (unwrap_event_receiver (receiver));
+ return SCM_UNSPECIFIED;
+ }
+
+ SCM
+ irr_setResizable (SCM wrapped_device,
+ SCM resize)
+ {
+ irr::IrrlichtDevice* device = unwrap_device (wrapped_device);
+ device->setResizable (scm_to_bool (resize));
+ return SCM_UNSPECIFIED;