X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fscene-manager.cpp;h=31f433075664c02b269ebfd4c1b461febd6cb3d3;hb=79e12d94cc21232477796a4e76fc2ddb5d88f9dc;hp=815b83a8d9d21bcb6d21c8dc449399c89b9306c3;hpb=4f049544ec827a9f1f16a913d7241f29179fdde7;p=guile-irrlicht.git diff --git a/src/scene-manager.cpp b/src/scene-manager.cpp index 815b83a..31f4330 100644 --- a/src/scene-manager.cpp +++ b/src/scene-manager.cpp @@ -48,7 +48,7 @@ ISceneManager_addAnimatedMeshSceneNode (SCM scene_manager, scm_to_vector3df (rotation), scm_to_vector3df (scale), scm_to_bool (also_add_if_mesh_pointer_zero)); - return scm_from_pointer ((void*) node, NULL); + return scm_from_irr_pointer ("", (void*) node); } template @@ -67,7 +67,7 @@ ISceneManager_addCameraSceneNode (SCM scene_manager, scm_to_vector3df (lookat), scm_to_int32 (id), scm_to_bool (make_active)); - return scm_from_pointer ((void*) camera, NULL); + return scm_from_irr_pointer ("", (void*) camera); } template @@ -112,7 +112,7 @@ ISceneManager_addCameraSceneNodeFPS (SCM scene_manager, scm_to_double (jump_speed), scm_to_bool (invert_mouse), scm_to_bool (make_active)); - return scm_from_pointer ((void*) camera, NULL); + return scm_from_irr_pointer ("", (void*) camera); } template @@ -133,7 +133,7 @@ ISceneManager_addCubeSceneNode (SCM scene_manager, scm_to_vector3df (position), scm_to_vector3df (rotation), scm_to_vector3df (scale)); - return scm_from_pointer ((void*) node, NULL); + return scm_from_irr_pointer ("", (void*) node); } template @@ -218,7 +218,7 @@ ISceneManager_addCustomSceneNode (SCM scene_manager, proc_get_bounding_box, proc_get_material_count, proc_get_material); - return scm_from_pointer ((void*) node, NULL); + return scm_from_irr_pointer ("", (void*) node); } template @@ -237,7 +237,7 @@ ISceneManager_addOctreeSceneNode (SCM scene_manager, scm_to_int32 (id), scm_to_int32 (minimal_polys_per_node), scm_to_bool (also_add_if_mesh_pointer_zero)); - return scm_from_pointer ((void*) node, NULL); + return scm_from_irr_pointer ("", (void*) node); } template @@ -260,7 +260,7 @@ ISceneManager_addSphereSceneNode (SCM scene_manager, scm_to_vector3df (position), scm_to_vector3df (rotation), scm_to_vector3df (scale)); - return scm_from_pointer ((void*) node, NULL); + return scm_from_irr_pointer ("", (void*) node); } SCM @@ -280,7 +280,7 @@ ISceneManager_createFlyCircleAnimator (SCM scene_manager, scm_to_vector3df (direction), scm_to_double (start_position), scm_to_double (radius_ellipsoid)); - return scm_from_pointer ((void*) anim, NULL); + return scm_from_irr_pointer ("", (void*) anim); } SCM @@ -298,7 +298,7 @@ ISceneManager_createFlyStraightAnimator (SCM scene_manager, scm_to_uint32 (time_for_way), scm_to_bool (loop), scm_to_bool (pingpong)); - return scm_from_pointer ((void*) anim, NULL); + return scm_from_irr_pointer ("", (void*) anim); } SCM @@ -308,7 +308,7 @@ ISceneManager_createRotationAnimator (SCM scene_manager, scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager); scene::ISceneNodeAnimator* anim = smgr->createRotationAnimator (scm_to_vector3df (rotation_speed)); - return scm_from_pointer ((void*) anim, NULL); + return scm_from_irr_pointer ("", (void*) anim); } SCM @@ -322,16 +322,18 @@ SCM ISceneManager_getMesh (SCM scene_manager, SCM filename) { + char* cfilename = scm_to_utf8_string (filename); scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager); - scene::IAnimatedMesh* mesh = smgr->getMesh(scm_to_utf8_string (filename)); - return scm_from_pointer ((void*) mesh, NULL); + scene::IAnimatedMesh* mesh = smgr->getMesh(cfilename); + free (cfilename); + return scm_from_irr_pointer ("", (void*) mesh); } SCM ISceneManager_getRootSceneNode (SCM scene_manager) { scene::ISceneManager* smgr = (scene::ISceneManager*) scm_to_irr_pointer (scene_manager); - return scm_from_pointer ((void*) smgr->getRootSceneNode (), NULL); + return scm_from_irr_pointer ("", (void*) smgr->getRootSceneNode ()); } void