X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fvertex3d.cpp;h=e0ca2d2cab1ee198e0fd6798ab2740d1f346023c;hb=6dd88690b25a4df65ee7568377e25a0e1bf3af2f;hp=9b7a1e874d7408a59f1c2f9ae2fff68185a3034f;hpb=c4d9e46f268b4f7f738dd77685c632991125cec9;p=guile-irrlicht.git diff --git a/src/vertex3d.cpp b/src/vertex3d.cpp index 9b7a1e8..e0ca2d2 100644 --- a/src/vertex3d.cpp +++ b/src/vertex3d.cpp @@ -31,21 +31,21 @@ using namespace irr; SCM -video_S3DVertex_make (SCM position, - SCM normal, - SCM color, - SCM tcoords) +S3DVertex_make (SCM position, + SCM normal, + SCM color, + SCM tcoords) { video::S3DVertex* vertex = new video::S3DVertex (scm_to_vector3df (position), scm_to_vector3df (normal), scm_to_color (color), scm_to_vector2df (tcoords)); - return scm_from_pointer ((void*) vertex, NULL); + return scm_from_irr_pointer ("", (void*) vertex); } SCM -video_S3DVertex_Pos (SCM vertex) { +S3DVertex_Pos (SCM vertex) { video::S3DVertex* s3dvertex = (video::S3DVertex*) scm_to_irr_pointer (vertex); return scm_from_vector3df (s3dvertex->Pos); } @@ -53,29 +53,34 @@ video_S3DVertex_Pos (SCM vertex) { void init_vertex3d (void) { - DEFINE_GSUBR ("video_S3DVertex_make", 4, 0, 0, video_S3DVertex_make); - DEFINE_GSUBR ("video_S3DVertex_Pos", 1, 0, 0, video_S3DVertex_Pos); + DEFINE_GSUBR ("S3DVertex_make", 4, 0, 0, S3DVertex_make); + DEFINE_GSUBR ("S3DVertex_Pos", 1, 0, 0, S3DVertex_Pos); } video::E_VERTEX_TYPE scm_to_vertex_type (SCM vertex_type) { - char* type = scm_to_utf8_stringn (scm_symbol_to_string (vertex_type), NULL); - if (!strcmp (type, "standard")) + char* type_name = scm_to_utf8_string (scm_symbol_to_string (vertex_type)); + video::E_VERTEX_TYPE type; + + if (!strcmp (type_name, "standard")) { - return video::EVT_STANDARD; + type = video::EVT_STANDARD; } - else if (!strcmp (type, "2tcoords")) + else if (!strcmp (type_name, "2tcoords")) { - return video::EVT_2TCOORDS; + type = video::EVT_2TCOORDS; } - else if (!strcmp (type, "tangents")) + else if (!strcmp (type_name, "tangents")) { - return video::EVT_TANGENTS; + type = video::EVT_TANGENTS; } else { scm_error (scm_arg_type_key, NULL, "Wrong vertex_type: ~S", scm_list_1 (vertex_type), scm_list_1 (vertex_type)); } + + free (type_name); + return type; }