mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-04-22 05:39:54 +08:00
50 lines
1.6 KiB
JavaScript
50 lines
1.6 KiB
JavaScript
// This is a minimal example showing how to create the Draco decoder and
|
|
// encoder module. The modules are created asynchronously, so you need to set
|
|
// callbacks to make sure they are initialized before you try and call the
|
|
// modules.
|
|
|
|
'use_strict';
|
|
|
|
const draco3d = require('./draco3d');
|
|
|
|
// Global decoder and encoder module variables.
|
|
let decoderModule = null;
|
|
let encoderModule = null;
|
|
|
|
// The code to create the encoder and decoder modules is asynchronous.
|
|
// draco3d.createDecoderModule will return a promise to a funciton with a
|
|
// module as a parameter when the module has been fully initialized.
|
|
// Create and set the decoder module.
|
|
draco3d.createDecoderModule({}).then(function(module) {
|
|
// This is reached when everything is ready, and you can call methods on
|
|
// Module.
|
|
decoderModule = module;
|
|
console.log('Decoder Module Initialized!');
|
|
moduleInitialized();
|
|
});
|
|
|
|
// Create and set the encoder module.
|
|
draco3d.createEncoderModule({}).then(function(module) {
|
|
// This is reached when everything is ready, and you can call methods on
|
|
// Module.
|
|
encoderModule = module;
|
|
console.log('Encoder Module Initialized!');
|
|
moduleInitialized();
|
|
});
|
|
|
|
function moduleInitialized() {
|
|
if (encoderModule && decoderModule) {
|
|
console.log('Both Modules Initialized!');
|
|
let encoder = new encoderModule.Encoder();
|
|
let decoder = new decoderModule.Decoder();
|
|
// Do the actual encoding and decoding here. See 'draco_nodejs_example.js'
|
|
// for a more comprehensive example.
|
|
cleanup(encoder, decoder);
|
|
}
|
|
}
|
|
|
|
function cleanup(encoder, decoder) {
|
|
encoderModule.destroy(encoder);
|
|
decoderModule.destroy(decoder);
|
|
}
|