molstar
Version:
A comprehensive macromolecular library.
36 lines • 1.48 kB
JavaScript
/**
* Copyright (c) 2018-2020 mol* contributors, licensed under MIT, See LICENSE file for more info.
*
* @author Alexander Rose <alexander.rose@weirdbyte.de>
*/
import { ValueCell } from '../mol-util';
import { idFactory } from '../mol-util/id-factory';
import { clamp } from '../mol-math/interpolate';
var getNextRenderableId = idFactory();
export function createRenderable(renderItem, values, state) {
return {
id: getNextRenderableId(),
materialId: renderItem.materialId,
values: values,
state: state,
render: function (variant, sharedTexturesList) {
if (values.uAlpha && values.alpha) {
ValueCell.updateIfChanged(values.uAlpha, clamp(values.alpha.ref.value * state.alphaFactor, 0, 1));
}
renderItem.render(variant, sharedTexturesList);
},
getProgram: function (variant) { return renderItem.getProgram(variant); },
update: function () { return renderItem.update(); },
dispose: function () { return renderItem.destroy(); }
};
}
export function createComputeRenderable(renderItem, values) {
return {
id: getNextRenderableId(),
values: values,
render: function () { return renderItem.render('compute'); },
update: function () { return renderItem.update(); },
dispose: function () { return renderItem.destroy(); }
};
}
//# sourceMappingURL=renderable.js.map