Guest User

Untitled

a guest
Mar 17th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. package net.newbiehacker.nirc.ui;
  2.  
  3. import java.awt.image.*;
  4. import java.awt.*;
  5. import java.awt.Image;
  6.  
  7. /**
  8. * @author newbiehacker
  9. */
  10. public final class DrawingCanvas extends Canvas implements ImageProducer, ImageObserver {
  11. private ColorModel cmod;
  12. private Image render;
  13. private Graphics graphics;
  14. private ImageConsumer cons;
  15.  
  16. public DrawingCanvas(int w, int h) {
  17. Renderer.init(w, h);
  18. cmod = new DirectColorModel(32, 0xff0000, 0xff00, 0xff);
  19. render = createImage(this);
  20. updateRender();
  21. prepareImage(render, this);
  22. updateRender();
  23. prepareImage(render, this);
  24. updateRender();
  25. prepareImage(render, this);
  26. }
  27.  
  28. public void initGraphics() {
  29. graphics = getGraphics();
  30. }
  31.  
  32. public void draw() {
  33. updateRender();
  34. graphics.drawImage(render, 0, 0, this);
  35. }
  36.  
  37. public synchronized void addConsumer(ImageConsumer consumer) {
  38. cons = consumer;
  39. consumer.setDimensions(Renderer.width, Renderer.height);
  40. consumer.setProperties(null);
  41. consumer.setColorModel(cmod);
  42. consumer.setHints(ImageConsumer.TOPDOWNLEFTRIGHT | ImageConsumer.COMPLETESCANLINES | ImageConsumer.SINGLEPASS);
  43. }
  44.  
  45. public synchronized boolean isConsumer(ImageConsumer consumer) {
  46. return cons == consumer;
  47. }
  48.  
  49. public synchronized void removeConsumer(ImageConsumer consumer) {
  50. if (cons == consumer)
  51. cons = null;
  52. }
  53.  
  54. public void startProduction(ImageConsumer consumer) {
  55. addConsumer(consumer);
  56. }
  57.  
  58. public void requestTopDownLeftRightResend(ImageConsumer consumer) {
  59. System.out.println("TDLR");
  60. }
  61.  
  62. private synchronized void updateRender() {
  63. if (cons != null) {
  64. cons.setPixels(0, 0, Renderer.width, Renderer.height, cmod, Renderer.pix, 0, Renderer.width);
  65. cons.imageComplete(ImageConsumer.SINGLEFRAMEDONE);
  66. }
  67. }
  68.  
  69. public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) {
  70. return true;
  71. }
  72.  
  73. protected void finalize() throws Throwable {
  74. super.finalize();
  75. cmod = null;
  76. render = null;
  77. graphics = null;
  78. cons = null;
  79. }
  80. }
Add Comment
Please, Sign In to add comment