X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fmaterial-flags.cpp;h=d69bd77cae2da988cd9b29b5b338cda2069bdef8;hb=357f279e004c6257a160205835c06c283d317ef7;hp=df2c884c68eb5c4fed4eb86a7135c9cda71fe29a;hpb=2806f03eafc48ec9ef02a3dc2d74133eaf11ccc1;p=guile-irrlicht.git diff --git a/src/material-flags.cpp b/src/material-flags.cpp index df2c884..d69bd77 100644 --- a/src/material-flags.cpp +++ b/src/material-flags.cpp @@ -21,99 +21,101 @@ #include #include -#include "material-flags.h" -extern "C" { +using namespace irr; - irr::video::E_MATERIAL_FLAG - scm_to_material_flag (SCM material_flag) - { - char* flag = scm_to_utf8_stringn (scm_symbol_to_string (material_flag), NULL); - if (!strcmp (flag, "wireframe")) - { - return irr::video::EMF_WIREFRAME; - } - else if (!strcmp (flag, "pointcloud")) - { - return irr::video::EMF_POINTCLOUD; - } - else if (!strcmp (flag, "gouraud-shading")) - { - return irr::video::EMF_GOURAUD_SHADING; - } - else if (!strcmp (flag, "lighting")) - { - return irr::video::EMF_LIGHTING; - } - else if (!strcmp (flag, "zbuffer")) - { - return irr::video::EMF_ZBUFFER; - } - else if (!strcmp (flag, "zwrite-enable")) - { - return irr::video::EMF_ZWRITE_ENABLE; - } - else if (!strcmp (flag, "back-face-culling")) - { - return irr::video::EMF_BACK_FACE_CULLING; - } - else if (!strcmp (flag, "front-face-culling")) - { - return irr::video::EMF_FRONT_FACE_CULLING; - } - else if (!strcmp (flag, "bilinear-filter")) - { - return irr::video::EMF_BILINEAR_FILTER; - } - else if (!strcmp (flag, "trilinear-filter")) - { - return irr::video::EMF_TRILINEAR_FILTER; - } - else if (!strcmp (flag, "anisotropic-filter")) - { - return irr::video::EMF_ANISOTROPIC_FILTER; - } - else if (!strcmp (flag, "fog-enable")) - { - return irr::video::EMF_FOG_ENABLE; - } - else if (!strcmp (flag, "normalize-normals")) - { - return irr::video::EMF_NORMALIZE_NORMALS; - } - else if (!strcmp (flag, "texture-wrap")) - { - return irr::video::EMF_TEXTURE_WRAP; - } - else if (!strcmp (flag, "anti-aliasing")) - { - return irr::video::EMF_ANTI_ALIASING; - } - else if (!strcmp (flag, "color-mask")) - { - return irr::video::EMF_COLOR_MASK; - } - else if (!strcmp (flag, "color-material")) - { - return irr::video::EMF_COLOR_MATERIAL; - } - else if (!strcmp (flag, "use-mip-maps")) - { - return irr::video::EMF_USE_MIP_MAPS; - } - else if (!strcmp (flag, "blend-operation")) - { - return irr::video::EMF_BLEND_OPERATION; - } - else if (!strcmp (flag, "polygon-offset")) - { - return irr::video::EMF_POLYGON_OFFSET; - } - else - { - scm_error (scm_arg_type_key, NULL, "Wrong material flag: ~S", - scm_list_1 (material_flag), scm_list_1 (material_flag)); - } - } +video::E_MATERIAL_FLAG +scm_to_material_flag (SCM material_flag) +{ + char* flag_name = scm_to_utf8_string (scm_symbol_to_string (material_flag)); + video::E_MATERIAL_FLAG flag; + if (!strcmp (flag_name, "wireframe")) + { + flag = video::EMF_WIREFRAME; + } + else if (!strcmp (flag_name, "pointcloud")) + { + flag = video::EMF_POINTCLOUD; + } + else if (!strcmp (flag_name, "gouraud-shading")) + { + flag = video::EMF_GOURAUD_SHADING; + } + else if (!strcmp (flag_name, "lighting")) + { + flag = video::EMF_LIGHTING; + } + else if (!strcmp (flag_name, "zbuffer")) + { + flag = video::EMF_ZBUFFER; + } + else if (!strcmp (flag_name, "zwrite-enable")) + { + flag = video::EMF_ZWRITE_ENABLE; + } + else if (!strcmp (flag_name, "back-face-culling")) + { + flag = video::EMF_BACK_FACE_CULLING; + } + else if (!strcmp (flag_name, "front-face-culling")) + { + flag = video::EMF_FRONT_FACE_CULLING; + } + else if (!strcmp (flag_name, "bilinear-filter")) + { + flag = video::EMF_BILINEAR_FILTER; + } + else if (!strcmp (flag_name, "trilinear-filter")) + { + flag = video::EMF_TRILINEAR_FILTER; + } + else if (!strcmp (flag_name, "anisotropic-filter")) + { + flag = video::EMF_ANISOTROPIC_FILTER; + } + else if (!strcmp (flag_name, "fog-enable")) + { + flag = video::EMF_FOG_ENABLE; + } + else if (!strcmp (flag_name, "normalize-normals")) + { + flag = video::EMF_NORMALIZE_NORMALS; + } + else if (!strcmp (flag_name, "texture-wrap")) + { + flag = video::EMF_TEXTURE_WRAP; + } + else if (!strcmp (flag_name, "anti-aliasing")) + { + flag = video::EMF_ANTI_ALIASING; + } + else if (!strcmp (flag_name, "color-mask")) + { + flag = video::EMF_COLOR_MASK; + } + else if (!strcmp (flag_name, "color-material")) + { + flag = video::EMF_COLOR_MATERIAL; + } + else if (!strcmp (flag_name, "use-mip-maps")) + { + flag = video::EMF_USE_MIP_MAPS; + } + else if (!strcmp (flag_name, "blend-operation")) + { + flag = video::EMF_BLEND_OPERATION; + } + else if (!strcmp (flag_name, "polygon-offset")) + { + flag = video::EMF_POLYGON_OFFSET; + } + else + { + scm_error (scm_arg_type_key, NULL, "Wrong material flag: ~S", + scm_list_1 (material_flag), scm_list_1 (material_flag)); + } + + free (flag_name); + return flag; }