+ SCM
+ irr_video_beginScene (SCM wrapped_video_driver,
+ SCM rest)
+ {
+ SCM back_buffer = scm_from_bool(1);
+ SCM z_buffer = scm_from_bool(1);
+ SCM color = scm_list_4 (scm_from_uint32 (255),
+ scm_from_uint32 (0),
+ scm_from_uint32 (0),
+ scm_from_uint32 (0));
+ SCM video_data = scm_from_bool(0);
+ SCM source_rect = scm_from_bool(0);
+
+ scm_c_bind_keyword_arguments ("begin-scene", rest, (scm_t_keyword_arguments_flags)0,
+ scm_from_utf8_keyword ("back-buffer"), &back_buffer,
+ scm_from_utf8_keyword ("z-buffer"), &z_buffer,
+ scm_from_utf8_keyword ("color"), &color,
+ scm_from_utf8_keyword ("video-data"), &video_data,
+ scm_from_utf8_keyword ("source-rect"), &source_rect,
+ SCM_UNDEFINED);
+
+ irr::video::IVideoDriver* driver = unwrap_video_driver (wrapped_video_driver);
+ irr::core::rect<irr::s32>* sourceRectAddress = 0;
+ if (!scm_is_false (source_rect))
+ {
+ irr::core::rect<irr::s32> sourceRect = scm_to_rect_s32 (source_rect);
+ sourceRectAddress = &sourceRect;
+ }
+ return scm_from_bool (driver->beginScene (scm_to_bool (back_buffer),
+ scm_to_bool (z_buffer),
+ scm_to_color (color),
+ irr::video::SExposedVideoData (),
+ sourceRectAddress));
+ }
+
+ SCM
+ irr_video_endScene (SCM wrapped_video_driver)
+ {
+ irr::video::IVideoDriver* driver = unwrap_video_driver (wrapped_video_driver);
+ return scm_from_bool (driver->endScene ());
+ }
+
+ SCM
+ irr_video_getFPS (SCM wrapped_video_driver)
+ {
+ irr::video::IVideoDriver* driver = unwrap_video_driver (wrapped_video_driver);
+ return scm_from_int32 (driver->getFPS ());
+ }
+
+ SCM
+ irr_video_getTexture (SCM wrapped_video_driver,
+ SCM filename)
+ {
+ irr::video::IVideoDriver* driver = unwrap_video_driver (wrapped_video_driver);
+ irr::video::ITexture* texture = driver->getTexture (scm_to_utf8_stringn (filename, NULL));
+ return wrap_texture (texture);
+ }
+