interactive-shader-format
Version:
Rendering engine for Interactive Shader Format effects and generators
28 lines (24 loc) • 985 B
JavaScript
import MetadataExtractor from './MetadataExtractor';
const ConvertFragment = function ConvertFragment(fragShader) {
const metadataInfo = MetadataExtractor(fragShader);
const meta = metadataInfo.objectValue;
const persistentBufferNames = meta.PERSISTENT_BUFFERS || [];
if (meta.PASSES) {
meta.PASSES.forEach((pass) => {
if (persistentBufferNames.indexOf(pass.TARGET) !== -1) pass.persistent = true;
});
}
delete meta.PERSISTENT_BUFFERS;
fragShader = fragShader.replace(metadataInfo.stringValue, JSON.stringify(meta, null, 2));
fragShader = fragShader.replace(/vv_FragNormCoord/g, 'isf_FragNormCoord');
return fragShader;
};
const ConvertVertex = function ConvertVertex(vertShader) {
vertShader = vertShader.replace(/vv_vertShaderInit/g, 'isf_vertShaderInit');
vertShader = vertShader.replace(/vv_FragNormCoord/g, 'isf_FragNormCoord');
return vertShader;
};
export default {
convertFragment: ConvertFragment,
convertVertex: ConvertVertex,
};