1. /*
  2. * @(#)ColorPaintContext.java 1.17 01/11/29
  3. *
  4. * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package java.awt;
  8. import java.awt.image.ColorModel;
  9. import java.awt.image.Raster;
  10. import java.awt.image.WritableRaster;
  11. class ColorPaintContext implements PaintContext {
  12. int color;
  13. ColorModel cm;
  14. WritableRaster savedTile;
  15. Object c;
  16. protected ColorPaintContext(int color, ColorModel cm) {
  17. this.color = color;
  18. this.cm = cm;
  19. c = cm.getDataElements(color, null);
  20. }
  21. public void dispose() {
  22. }
  23. public ColorModel getColorModel() {
  24. return cm;
  25. }
  26. public synchronized Raster getRaster(int x, int y, int w, int h) {
  27. WritableRaster t = savedTile;
  28. if (t == null || w > t.getWidth() || h > t.getHeight()) {
  29. t = cm.createCompatibleWritableRaster(w, h);
  30. for (int i = 0 ; i < h ; i++) {
  31. for (int j = 0 ; j < w ; j++) {
  32. t.setDataElements(j, i, c);
  33. }
  34. }
  35. if (w <= 64 && h <= 64) {
  36. savedTile = t;
  37. }
  38. }
  39. return t;
  40. }
  41. }