Files
UnrealEngine/Engine/Source/ThirdParty/MaterialX/MaterialX-1.38.10/source/PyMaterialX/PyMaterialXRenderOsl/PyOslRenderer.cpp
2025-05-18 13:04:45 +08:00

37 lines
2.0 KiB
C++

//
// Copyright Contributors to the MaterialX Project
// SPDX-License-Identifier: Apache-2.0
//
#include <PyMaterialX/PyMaterialX.h>
#include <MaterialXRenderOsl/OslRenderer.h>
namespace py = pybind11;
namespace mx = MaterialX;
void bindPyOslRenderer(py::module& mod)
{
py::class_<mx::OslRenderer, mx::ShaderRenderer, mx::OslRendererPtr>(mod, "OslRenderer")
.def_static("create", &mx::OslRenderer::create)
.def_readwrite_static("OSL_CLOSURE_COLOR_STRING", &mx::OslRenderer::OSL_CLOSURE_COLOR_STRING)
.def("initialize", &mx::OslRenderer::initialize, py::arg("renderContextHandle") = nullptr)
.def("createProgram", static_cast<void (mx::OslRenderer::*)(const mx::ShaderPtr)>(&mx::OslRenderer::createProgram))
.def("createProgram", static_cast<void (mx::OslRenderer::*)(const mx::OslRenderer::StageMap&)>(&mx::OslRenderer::createProgram))
.def("validateInputs", &mx::OslRenderer::validateInputs)
.def("render", &mx::OslRenderer::render)
.def("captureImage", &mx::OslRenderer::captureImage)
.def("setOslCompilerExecutable", &mx::OslRenderer::setOslCompilerExecutable)
.def("setOslIncludePath", &mx::OslRenderer::setOslIncludePath)
.def("setOslOutputFilePath", &mx::OslRenderer::setOslOutputFilePath)
.def("setShaderParameterOverrides", &mx::OslRenderer::setShaderParameterOverrides)
.def("setOslShaderOutput", &mx::OslRenderer::setOslShaderOutput)
.def("setOslTestShadeExecutable", &mx::OslRenderer::setOslTestShadeExecutable)
.def("setOslTestRenderExecutable", &mx::OslRenderer::setOslTestRenderExecutable)
.def("setOslTestRenderSceneTemplateFile", &mx::OslRenderer::setOslTestRenderSceneTemplateFile)
.def("setOslShaderName", &mx::OslRenderer::setOslShaderName)
.def("setOslUtilityOSOPath", &mx::OslRenderer::setOslUtilityOSOPath)
.def("useTestRender", &mx::OslRenderer::useTestRender)
.def("compileOSL", &mx::OslRenderer::compileOSL);
}