internal: expose Engine getters (TransformManager, RenderableManager), and build/desotry material methods

This commit is contained in:
Nick Fisher
2024-12-17 14:02:53 +08:00
parent f27628e719
commit c1a294315a
2 changed files with 21 additions and 5 deletions

View File

@@ -508,4 +508,18 @@ extern "C"
}
transformManager.setTransform(transformInstance, convert_double4x4_to_mat4(transform));
}
EMSCRIPTEN_KEEPALIVE TMaterial *Engine_buildMaterial(TEngine *tEngine, const uint8_t* materialData, size_t length) {
auto *engine = reinterpret_cast<Engine *>(tEngine);
auto *material = Material::Builder()
.package(materialData, length)
.build(*engine);
return reinterpret_cast<TMaterial*>(material);
}
EMSCRIPTEN_KEEPALIVE void Engine_destroyMaterial(TEngine *tEngine, TMaterial *tMaterial) {
auto *engine = reinterpret_cast<Engine *>(tEngine);
auto *material = reinterpret_cast<Material *>(tMaterial);
engine->destroy(material);
}
}