X-Git-Url: https://git.jsancho.org/?p=guile-irrlicht.git;a=blobdiff_plain;f=src%2Fmaterial.cpp;fp=src%2Fmaterial.cpp;h=b4122563eed5a6db7e0fb25eb192c8ec7ea9c76a;hp=0000000000000000000000000000000000000000;hb=f3e2debaa586874bc403a1dfb01709433627f9cd;hpb=0e0782653487ad1691d7879ff433bc5ffd7c3791 diff --git a/src/material.cpp b/src/material.cpp new file mode 100644 index 0000000..b412256 --- /dev/null +++ b/src/material.cpp @@ -0,0 +1,58 @@ +/* guile-irrlicht --- GNU Guile bindings for Irrlicht Engine + + Copyright (C) 2020 Javier Sancho + + This file is part of guile-irrlicht. + + guile-irrlicht is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 3 of the + License, or (at your option) any later version. + + guile-irrlicht is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with guile-irrlicht. If not, see + . +*/ + +#include +#include +#include "material.h" +#include "wrapped.h" + +extern "C" { + + void + init_material (void) + { + init_material_type (); + scm_c_define_gsubr ("make-material", 0, 0, 1, (scm_t_subr)make_material); + scm_c_export ("make-material", NULL); + } + + DEFINE_WRAPPED_TYPE (irr::video::SMaterial*, "material", + init_material_type, material_p, + wrap_material, unwrap_material); + + SCM + make_material (SCM rest) + { + SCM wireframe = scm_from_bool (0); + SCM lighting = scm_from_bool (1); + + scm_c_bind_keyword_arguments ("make-material", rest, (scm_t_keyword_arguments_flags)0, + scm_from_utf8_keyword ("wireframe"), &wireframe, + scm_from_utf8_keyword ("lighting"), &lighting, + SCM_UNDEFINED); + + irr::video::SMaterial* material = new irr::video::SMaterial (); + material->Wireframe = wireframe; + material->Lighting = lighting; + return wrap_material (material); + } + +}