X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FPixelBuffer.java;h=207611290a71d09e7d8057b8ad029e41c0863364;hb=7e9239a7088d4cd772a31a76e1a53e1c681638bc;hp=9bb41be98f87fc0e5f7705de41935bd75ecbed3a;hpb=8ca06b850fb51673a7cfe751643ea45ec528070d;p=org.ibex.core.git diff --git a/src/org/xwt/PixelBuffer.java b/src/org/xwt/PixelBuffer.java index 9bb41be..2076112 100644 --- a/src/org/xwt/PixelBuffer.java +++ b/src/org/xwt/PixelBuffer.java @@ -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 w; note that the coordinates here are post-transform */ 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; }