53 lines
614 B
JavaScript
53 lines
614 B
JavaScript
|
/**
|
||
|
* @author fordacious / fordacious.github.io
|
||
|
*/
|
||
|
|
||
|
function WebGLProperties() {
|
||
|
|
||
|
var properties = new WeakMap();
|
||
|
|
||
|
function get( object ) {
|
||
|
|
||
|
var map = properties.get( object );
|
||
|
|
||
|
if ( map === undefined ) {
|
||
|
|
||
|
map = {};
|
||
|
properties.set( object, map );
|
||
|
|
||
|
}
|
||
|
|
||
|
return map;
|
||
|
|
||
|
}
|
||
|
|
||
|
function remove( object ) {
|
||
|
|
||
|
properties.delete( object );
|
||
|
|
||
|
}
|
||
|
|
||
|
function update( object, key, value ) {
|
||
|
|
||
|
properties.get( object )[ key ] = value;
|
||
|
|
||
|
}
|
||
|
|
||
|
function dispose() {
|
||
|
|
||
|
properties = new WeakMap();
|
||
|
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
get: get,
|
||
|
remove: remove,
|
||
|
update: update,
|
||
|
dispose: dispose
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
export { WebGLProperties };
|