Files
UnrealEngine/Engine/Source/ThirdParty/MaterialX/MaterialX-1.39.3/source/PyMaterialX/PyMaterialXRender/PyImageHandler.cpp
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

60 lines
3.2 KiB
C++

//
// Copyright Contributors to the MaterialX Project
// SPDX-License-Identifier: Apache-2.0
//
#include <PyMaterialX/PyMaterialX.h>
#include <MaterialXRender/ImageHandler.h>
namespace py = pybind11;
namespace mx = MaterialX;
void bindPyImageHandler(py::module& mod)
{
py::class_<mx::ImageSamplingProperties>(mod, "ImageSamplingProperties")
.def_readwrite("uaddressMode", &mx::ImageSamplingProperties::uaddressMode)
.def_readwrite("vaddressMode", &mx::ImageSamplingProperties::vaddressMode)
.def_readwrite("filterType", &mx::ImageSamplingProperties::filterType)
.def_readwrite("defaultColor", &mx::ImageSamplingProperties::defaultColor);
py::class_<mx::ImageLoader, mx::ImageLoaderPtr>(mod, "ImageLoader")
.def_readonly_static("BMP_EXTENSION", &mx::ImageLoader::BMP_EXTENSION)
.def_readonly_static("EXR_EXTENSION", &mx::ImageLoader::EXR_EXTENSION)
.def_readonly_static("GIF_EXTENSION", &mx::ImageLoader::GIF_EXTENSION)
.def_readonly_static("HDR_EXTENSION", &mx::ImageLoader::HDR_EXTENSION)
.def_readonly_static("JPG_EXTENSION", &mx::ImageLoader::JPG_EXTENSION)
.def_readonly_static("JPEG_EXTENSION", &mx::ImageLoader::JPEG_EXTENSION)
.def_readonly_static("PIC_EXTENSION", &mx::ImageLoader::PIC_EXTENSION)
.def_readonly_static("PNG_EXTENSION", &mx::ImageLoader::PNG_EXTENSION)
.def_readonly_static("PSD_EXTENSION", &mx::ImageLoader::PSD_EXTENSION)
.def_readonly_static("TGA_EXTENSION", &mx::ImageLoader::TGA_EXTENSION)
.def_readonly_static("TIF_EXTENSION", &mx::ImageLoader::TIF_EXTENSION)
.def_readonly_static("TIFF_EXTENSION", &mx::ImageLoader::TIFF_EXTENSION)
.def_readonly_static("TXT_EXTENSION", &mx::ImageLoader::TXT_EXTENSION)
.def("supportedExtensions", &mx::ImageLoader::supportedExtensions)
.def("saveImage", &mx::ImageLoader::saveImage)
.def("loadImage", &mx::ImageLoader::loadImage);
py::class_<mx::ImageHandler, mx::ImageHandlerPtr>(mod, "ImageHandler")
.def_static("create", &mx::ImageHandler::create)
.def("addLoader", &mx::ImageHandler::addLoader)
.def("saveImage", &mx::ImageHandler::saveImage,
py::arg("filePath"), py::arg("image"), py::arg("verticalFlip") = false)
.def("acquireImage", &mx::ImageHandler::acquireImage,
py::arg("filePath"), py::arg("defaultColor") = mx::Color4(0.0f))
.def("bindImage", &mx::ImageHandler::bindImage)
.def("unbindImage", &mx::ImageHandler::unbindImage)
.def("unbindImages", &mx::ImageHandler::unbindImages)
.def("setSearchPath", &mx::ImageHandler::setSearchPath)
.def("getSearchPath", &mx::ImageHandler::getSearchPath)
.def("setFilenameResolver", &mx::ImageHandler::setFilenameResolver)
.def("getFilenameResolver", &mx::ImageHandler::getFilenameResolver)
.def("createRenderResources", &mx::ImageHandler::createRenderResources)
.def("releaseRenderResources", &mx::ImageHandler::releaseRenderResources,
py::arg("image") = nullptr)
.def("clearImageCache", &mx::ImageHandler::clearImageCache)
.def("getZeroImage", &mx::ImageHandler::getZeroImage)
.def("getReferencedImages", &mx::ImageHandler::getReferencedImages);
}