Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

54 lines
2.4 KiB
Plaintext

//
// Copyright Contributors to the MaterialX Project
// SPDX-License-Identifier: Apache-2.0
//
#include <PyMaterialX/PyMaterialX.h>
#include <MaterialXRenderMsl/MslPipelineStateObject.h>
#include <MaterialXRenderMsl/MetalFramebuffer.h>
namespace py = pybind11;
namespace mx = MaterialX;
void bindPyMslProgram(py::module& mod)
{
py::class_<mx::MslProgram, mx::MslProgramPtr>(mod, "MslProgram")
.def_static("create", &mx::MslProgram::create)
.def("setStages", &mx::MslProgram::setStages)
.def("addStage", &mx::MslProgram::addStage)
.def("getStageSourceCode", &mx::MslProgram::getStageSourceCode)
.def("getShader", &mx::MslProgram::getShader)
.def("build", &mx::MslProgram::build)
.def("prepareUsedResources", &mx::MslProgram::prepareUsedResources)
.def("getUniformsList", &mx::MslProgram::getUniformsList)
.def("getAttributesList", &mx::MslProgram::getAttributesList)
.def("findInputs", &mx::MslProgram::findInputs)
.def("bind", &mx::MslProgram::bind)
.def("bindUniform", &mx::MslProgram::bindUniform)
.def("bindAttribute", &mx::MslProgram::bindAttribute)
.def("bindPartition", &mx::MslProgram::bindPartition)
.def("bindMesh", &mx::MslProgram::bindMesh)
.def("unbindGeometry", &mx::MslProgram::unbindGeometry)
.def("bindTextures", &mx::MslProgram::bindTextures)
.def("bindLighting", &mx::MslProgram::bindLighting)
.def("bindViewInformation", &mx::MslProgram::bindViewInformation)
.def("bindTimeAndFrame", &mx::MslProgram::bindTimeAndFrame,
py::arg("time") = 1.0f, py::arg("frame") = 1.0f);
py::class_<mx::MslProgram::Input>(mod, "Input")
.def_readwrite("location", &mx::MslProgram::Input::location)
.def_readwrite("size", &mx::MslProgram::Input::size)
.def_readwrite("typeString", &mx::MslProgram::Input::typeString)
.def_readwrite("value", &mx::MslProgram::Input::value)
.def_readwrite("isConstant", &mx::MslProgram::Input::isConstant)
.def_readwrite("path", &mx::MslProgram::Input::path)
.def(py::init([](int inputLocation,
int inputType,
int inputSize,
const std::string& inputPath)
{
return mx::MslProgram::Input(inputLocation, static_cast<MTLDataType>(inputType), inputSize, inputPath);
}));
}