mirror of
https://github.com/johndoe6345789/SDL3CPlusPlus.git
synced 2026-04-25 14:15:02 +00:00
47 lines
1.9 KiB
C++
47 lines
1.9 KiB
C++
//
|
|
// Copyright Contributors to the MaterialX Project
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
#include <JsMaterialX/Helpers.h>
|
|
#include "./StrContainerTypeRegistration.h"
|
|
#include <MaterialXFormat/XmlIo.h>
|
|
|
|
#include <emscripten/bind.h>
|
|
|
|
namespace ems = emscripten;
|
|
namespace mx = MaterialX;
|
|
|
|
EMSCRIPTEN_BINDINGS(xmlio)
|
|
{
|
|
ems::function("getMtlxExtension", ems::optional_override([](){ return mx::MTLX_EXTENSION; }));
|
|
ems::class_<mx::XmlReadOptions>("XmlReadOptions")
|
|
.constructor<>()
|
|
.property<bool>("readXIncludes",
|
|
[](const mx::XmlReadOptions &self) {
|
|
return self.readXIncludeFunction == nullptr;
|
|
},
|
|
[](mx::XmlReadOptions &self, bool useIncludes) {
|
|
if (useIncludes) {
|
|
self.readXIncludeFunction = &mx::readFromXmlFile;
|
|
} else {
|
|
self.readXIncludeFunction = nullptr;
|
|
}
|
|
})
|
|
.property("readComments", &mx::XmlReadOptions::readComments)
|
|
.property("upgradeVersion", &mx::XmlReadOptions::upgradeVersion)
|
|
.property("parentXIncludes", &mx::XmlReadOptions::parentXIncludes);
|
|
|
|
ems::class_<mx::XmlWriteOptions>("XmlWriteOptions")
|
|
.constructor<>()
|
|
.property("writeXIncludeEnable", &mx::XmlWriteOptions::writeXIncludeEnable);
|
|
|
|
BIND_FUNC_RAW_PTR("_readFromXmlFile", mx::readFromXmlFile, 2, 4, mx::DocumentPtr, mx::FilePath,
|
|
mx::FileSearchPath, const mx::XmlReadOptions*);
|
|
BIND_FUNC_RAW_PTR("writeToXmlFile", mx::writeToXmlFile, 2, 3, mx::DocumentPtr, const mx::FilePath&, const mx::XmlWriteOptions *);
|
|
BIND_FUNC_RAW_PTR("readFromXmlString", mx::readFromXmlString, 2, 4, mx::DocumentPtr,
|
|
const mx::string&, const mx::FileSearchPath&, const mx::XmlReadOptions *);
|
|
BIND_FUNC_RAW_PTR("writeToXmlString", mx::writeToXmlString, 1, 2, mx::DocumentPtr, const mx::XmlWriteOptions *);
|
|
ems::function("prependXInclude", &mx::prependXInclude);
|
|
}
|