X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=src%2Fvideo-driver.cpp;h=dc9cce60da4a42012f2e91fd31ff4912e8f2f732;hp=632f0dec46a8170ec7e4a56fcfc8dadefd157139;hb=704cf6c2cc3d308c625071f6e03bd20ed2d833f8;hpb=0471cb27d989e74c5b6b3660853caf2872569f8f diff --git a/src/video-driver.cpp b/src/video-driver.cpp index 632f0de..dc9cce6 100644 --- a/src/video-driver.cpp +++ b/src/video-driver.cpp @@ -22,7 +22,9 @@ #include #include +#include "color.h" #include "device.h" +#include "rect.h" #include "texture.h" #include "video-driver.h" #include "wrapped.h" @@ -33,6 +35,7 @@ extern "C" { init_video_driver (void) { init_video_driver_type (); + scm_c_define_gsubr ("begin-scene", 6, 0, 0, (scm_t_subr)irr_video_beginScene); scm_c_define_gsubr ("get-texture", 2, 0, 0, (scm_t_subr)irr_video_getTexture); scm_c_define_gsubr ("get-video-driver", 1, 0, 0, (scm_t_subr)irr_getVideoDriver); } @@ -41,6 +44,28 @@ extern "C" { init_video_driver_type, video_driver_p, wrap_video_driver, unwrap_video_driver); + SCM + irr_video_beginScene (SCM wrapped_video_driver, + SCM back_buffer, + SCM z_buffer, + SCM color, + SCM video_data, + SCM source_rect) + { + irr::video::IVideoDriver* driver = unwrap_video_driver (wrapped_video_driver); + irr::core::rect* sourceRectAddress = 0; + if (!scm_is_false (source_rect)) + { + irr::core::rect 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_getTexture (SCM wrapped_video_driver, SCM filename)