2004/01/13 03:59:35
[org.ibex.core.git] / src / org / xwt / PixelBuffer.java
index 9bb41be..2076112 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2003 Adam Megacz, see the COPYING file for licensing [GPL]
+// Copyright 2004 Adam Megacz, see the COPYING file for licensing [GPL]
 package org.xwt;
 
 /**
@@ -21,8 +21,8 @@ package org.xwt;
  */
 public abstract class PixelBuffer {
 
-    /** Draw the region of source within s onto the region d on this PixelBuffer, scaling as needed */
-    public abstract void drawPicture(Picture source, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2);
+    /** draw the picture at (dx1, dy1), cropping to (cx1, cy1, cx2, cy2) */
+    protected abstract void drawPicture(Picture source, int dx1, int dy1, int cx1, int cy1, int cx2, int cy2);
 
     /** fill a trapezoid whose top and bottom edges are horizontal */
     public abstract void fillTrapezoid(int x1, int x2, int y1, int x3, int x4, int y2, int color);
@@ -32,17 +32,17 @@ public abstract class PixelBuffer {
      *  channels of the Picture in the process.  This method may assume that the RGB channels of the image are all zero IFF it
      *  restores this invariant before returning.
      */
-    public abstract void drawPictureAlphaOnly(Picture source, int dx1, int dy1, int dx2, int dy2,
-                                              int sx1, int sy1, int sx2, int sy2, int rgb);
+    public abstract void drawGlyph(Font.Glyph source, int dx1, int dy1, int cx1, int cy1, int cx2, int cy2, int rgb);
 
-    // FIXME: we want floats (inter-pixel spacing) for antialiasing, but this hoses the fastpath line drawing... argh!
+    // FEATURE: we want floats (inter-pixel spacing) for antialiasing, but this hoses the fastpath line drawing... argh!
     /** draws a line of width <tt>w</tt>; note that the coordinates here are <i>post-transform</i> */
     public void drawLine(int x1, int y1, int x2, int y2, int w, int color, boolean capped) {
 
        if (y1 > y2) { int t = x1; x1 = x2; x2 = t; t = y1; y1 = y2; y2 = t; }
 
        if (x1 == x2) {
-            fillTrapezoid(x1 - w / 2, x2 + w / 2, y1 - (capped ? w / 2 : 0), x1 - w / 2, x2 + w / 2, y2 + (capped ? w / 2 : 0), color);
+            fillTrapezoid(x1 - w / 2, x2 + w / 2, y1 - (capped ? w / 2 : 0),
+                          x1 - w / 2, x2 + w / 2, y2 + (capped ? w / 2 : 0), color);
             return;
         }