Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //----------------------------------------
- // document onload
- //----------------------------------------
- let isready = false
- const readycbs = []
- addEventListener("load", () => {
- isready = true
- while(readycbs.length > 0) {
- readycbs.shift()()
- }
- })
- export const ready = (callback: () => void) => {
- if(isready) {
- callback()
- } else {
- readycbs.push(callback)
- }
- }
- //----------------------------------------
- // render loop
- //----------------------------------------
- const loopcbs = []
- const step = () => {
- requestAnimationFrame(() => {
- loopcbs.forEach(callback => callback())
- })
- }
- export const loop = (callback: () => void) => {
- loopcbs.push(callback)
- }
- //----------------------------------------
- // image loader
- //----------------------------------------
- export const load = (uri: string) => new Promise<ImageData>((resolve, reject) => {
- const image = new Image()
- image.onload = () => {
- const canvas = document.createElement("canvas")
- canvas.width = image.width
- canvas.height = image.height
- const context = canvas.getContext("2d")
- context.drawImage(image, 0, 0)
- const data = context.getImageData(0, 0, image.width, image.height)
- resolve(data)
- }; image.src = uri
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement