Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 1x 1x 14170x 143x 143x 142x 254x 320x 254x 85x 85x 85x 254x | import type { IRenderingEngine } from '../types';
const cache = {};
const renderingEngineCache = {
/**
* Returns the `RenderingEngine` instance with the given `id`.
*
* @param id - The `id` of the `RenderingEngine` instance to fetch.
* @returns The `RenderingEngine` instance.
*/
get: (id: string): IRenderingEngine => {
return cache[id];
},
/**
* Adds the `RenderingEngine` instance to the cache.
*
* @param re - The `RenderingEngine` to add.
*/
set: (re: IRenderingEngine): void => {
const renderingEngineId = re.id;
cache[renderingEngineId] = re;
},
/**
* Deletes the `RenderingEngine` instance from the cache.
*
* @param id - The `id` of the `RenderingEngine` instance to delete.
* @returns True if the delete was successful.
*/
delete: (id: string) => {
return delete cache[id];
},
getAll: (): Array<IRenderingEngine> => {
const renderingEngineIds = Object.keys(cache);
const renderingEngines = renderingEngineIds.map((id) => cache[id]);
// sort the rendering engines so that the ones that start with _
// are at the end of the array. The reason is for not breaking
// the code that used getRenderingEngines(), but since we moved
// the renderToCanvas utility to use GPU hence it needs a
// rendering engine and we don't want to use the default one.
renderingEngines.sort((a, b) => {
Iif (a.id[0] === '_' && b.id[0] !== '_') {
return 1;
} else Eif (a.id[0] !== '_' && b.id[0] === '_') {
return -1;
} else {
return 0;
}
});
return renderingEngines;
},
};
export default renderingEngineCache;
|