PageRenderTime 37ms CodeModel.GetById 22ms RepoModel.GetById 1ms app.codeStats 0ms

/Play/play.js

http://github.com/mbebenita/Broadway
JavaScript | 63 lines | 53 code | 10 blank | 0 comment | 10 complexity | 9c601b35f88a30c8dd2105233cdadc10 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. function getRGB(r, g, b) {
  2. return r << 24 | g << 16 | b;
  3. }
  4. function drawLine(screen, x0, y0, x1, y1) {
  5. var dx = Math.abs(x1 - x0), sx = x0 < x1 ? 1 : -1;
  6. var dy = Math.abs(y1 - y0), sy = y0 < y1 ? 1 : -1;
  7. var err = (dx > dy ? dx : -dy) / 2;
  8. while (true) {
  9. screen.setPixel(x0, y0, 200, 200, 200);
  10. if (x0 === x1 && y0 === y1)
  11. break;
  12. var e2 = err;
  13. if (e2 > -dx) {
  14. err -= dy;
  15. x0 += sx;
  16. }
  17. if (e2 < dy) {
  18. err += dx;
  19. y0 += sy;
  20. }
  21. }
  22. }
  23. var lastTime = new Date();
  24. var frame = 0;
  25. function paint(buffer, width, height, pitch, bpp) {
  26. var uint32View = new Uint32Array(buffer);
  27. var screen = {
  28. setPixel : function(x, y, r, g, b) {
  29. uint32View[(y * pitch / bpp) + x] = getRGB(r, g, b);
  30. }
  31. }
  32. frame += 10;
  33. for (y = 0; y < height; y++) {
  34. start = y * pitch / bpp;
  35. for (x = 0; x < width; x++) {
  36. uint32View[start + x] = getRGB((x * x) / 256 + 3 * y + frame,
  37. (y * y) / 256 + x + frame, frame);
  38. }
  39. }
  40. if (false) {
  41. x0 = Math.round((Math.random() * width));
  42. x1 = Math.round((Math.random() * width));
  43. y0 = Math.round((Math.random() * height));
  44. y1 = Math.round((Math.random() * height));
  45. drawLine(screen, x0, x1, y0, y1);
  46. }
  47. newTime = new Date()
  48. if (frame % 100 == 0) {
  49. print("Frame Rate (fps): "
  50. + (1000 / (newTime.getTime() - lastTime.getTime()) + "\n"))
  51. }
  52. lastTime = newTime;
  53. }