Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. //----------------------------------------
  3. // document onload
  4. //----------------------------------------
  5. let isready = false
  6. const readycbs = []
  7. addEventListener("load", () => {
  8.   isready = true
  9.   while(readycbs.length > 0) {
  10.     readycbs.shift()()
  11.   }  
  12. })
  13.  
  14. export const ready = (callback: () => void) => {
  15.   if(isready) {
  16.     callback()
  17.   } else {
  18.     readycbs.push(callback)
  19.   }
  20. }
  21. //----------------------------------------
  22. // render loop
  23. //----------------------------------------
  24. const loopcbs = []
  25. const step = () => {
  26.   requestAnimationFrame(() => {
  27.     loopcbs.forEach(callback => callback())
  28.   })
  29. }
  30. export const loop = (callback: () => void) => {
  31.   loopcbs.push(callback)
  32. }
  33.  
  34. //----------------------------------------
  35. // image loader
  36. //----------------------------------------
  37. export const load = (uri: string) => new Promise<ImageData>((resolve, reject) => {
  38.   const image = new Image()
  39.   image.onload = () => {
  40.     const canvas  = document.createElement("canvas")
  41.     canvas.width  = image.width
  42.     canvas.height = image.height
  43.     const context = canvas.getContext("2d")
  44.     context.drawImage(image, 0, 0)
  45.     const data = context.getImageData(0, 0, image.width, image.height)
  46.     resolve(data)
  47.   }; image.src = uri
  48. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement