aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/awt/j2d/DirectRasterGraphics.java
blob: 8d25b88d0186f49d93c7b88ea4c77558f50b13fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* Copyright (C) 2000  Free Software Foundation

   This file is part of libgcj.

This software is copyrighted work licensed under the terms of the
Libgcj License.  Please consult the file "LIBGCJ_LICENSE" for
details.  */

package gnu.awt.j2d;

import java.awt.Color;
import java.awt.Image;
import java.awt.Shape;
import java.awt.Rectangle;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.image.Raster;
import java.awt.image.ImageObserver;

/**
 * Interface for a simple pixel based backend graphics object that
 * does not handle translation/transforms, curves, nor advanced
 * compositing.
 */
public interface DirectRasterGraphics extends Cloneable
{
  public void dispose();
  
  public void setColor(Color color);
  
  public void setPaintMode();
  
  public void setXORMode(Color altColor);
  
  public void setFont(Font font);
  
  public FontMetrics getFontMetrics(Font font);
  
  // supports rects, multi-rects and polygons
  public void setClip(Shape clip);
  
  public void copyArea(int x, int y, int width, int height,
		       int dx, int dy);
  
  public void drawLine(int x1, int y1, int x2, int y2);
  
  public void drawRect(int x, int y, int width, int height);
  
  public void fillRect(int x, int y, int width, int height);
  
  public void drawArc(int x, int y, int width, int height,
		      int startAngle, int arcAngle);
  
  public void fillArc(int x, int y, int width, int height,
		      int startAngle, int arcAngle);
  
  public void drawPolyline(int[] xPoints, int[] yPoints, int nPoints);
  
  public void drawPolygon(int[] xPoints, int[] yPoints, int nPoints);
  
  public void fillPolygon(int[] xPoints, int[] yPoints, int nPoints);
  
  public void drawString(String str, int x, int y);
  
  public boolean drawImage(Image image, int x, int y,
			   ImageObserver observer);

  /**
   * Map the data for screen pixels in the requested bounds to a
   * raster object.  This gives read/write access to the screen
   * pixels, allowing neat alpha and composite tricks.
   */
  public MappedRaster mapRaster(Rectangle bounds);
  
  /**
   * Detach previously mapped pixel data from a raster object.
   */
  public void unmapRaster(MappedRaster mappedRaster);
  
  public Object clone();
}