// // Copyright Contributors to the MaterialX Project // SPDX-License-Identifier: Apache-2.0 // #include #include #include namespace py = pybind11; namespace mx = MaterialX; void bindPyShader(py::module& mod) { // Note: py::return_value_policy::reference was needed because getStage returns a // ShaderStage& and without this parameter it would return a copy and not a // reference py::class_(mod, "Shader") .def(py::init()) .def("getName", &mx::Shader::getName) .def("hasStage", &mx::Shader::hasStage) .def("numStages", &mx::Shader::numStages) .def("getStage", static_cast(&mx::Shader::getStage), py::return_value_policy::reference) .def("getStage", static_cast(&mx::Shader::getStage), py::return_value_policy::reference) .def("getSourceCode", &mx::Shader::getSourceCode) .def("hasAttribute", &mx::Shader::hasAttribute) .def("getAttribute", &mx::Shader::getAttribute) .def("setAttribute", static_cast(&mx::Shader::setAttribute)) .def("setAttribute", static_cast(&mx::Shader::setAttribute)); }