scm_to_vector3df (normal),
scm_to_color (color),
scm_to_vector2df (tcoords));
- return scm_from_pointer ((void*) vertex, NULL);
+ return scm_from_irr_pointer ("<vertex3d>", (void*) vertex);
}
SCM
video::E_VERTEX_TYPE
scm_to_vertex_type (SCM vertex_type)
{
- char* type = scm_to_utf8_string (scm_symbol_to_string (vertex_type));
- 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;
}