From a74d72f54db190be0c0a7915c60132cf1d420158 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 9 Jan 2005 09:24:45 +0000 Subject: [PATCH] PixelBuffer becomes an interface darcs-hash:20050109092445-5007d-6fdbba7ed6d93e02945607078c665af7c0859d48.gz --- src/org/ibex/graphics/PixelBuffer.java | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/src/org/ibex/graphics/PixelBuffer.java b/src/org/ibex/graphics/PixelBuffer.java index 5e9821b..14c0d25 100644 --- a/src/org/ibex/graphics/PixelBuffer.java +++ b/src/org/ibex/graphics/PixelBuffer.java @@ -3,6 +3,7 @@ // You may not use this file except in compliance with the License. package org.ibex.graphics; +import org.ibex.util.*; /** *

@@ -15,30 +16,21 @@ package org.ibex.graphics; * method. These implementations may choose to use off-screen video * ram for this purpose (for example, a Pixmap on X11). *

- * - *

- * Many of these functions come in pairs, one that uses ints and one - * that uses floats. The int functions are intended for situations - * in which the CTM is the identity transform. - *

*/ -public abstract class PixelBuffer { +public interface PixelBuffer { + public abstract void drawLine(int x1, int y1, int x2, int y2, int color); + public abstract void fillTrapezoid(int x1, int x2, int y1, int x3, int x4, int y2, int color); + public abstract void drawGlyph(Font.Glyph source, int dx1, int dy1, int cx1, int cy1, int cx2, int cy2, int rgb, int bg); + public abstract void stroke(Polygon p, int color); + public abstract void fill(Polygon p, Paint paint); +} - /** draw the picture at (dx1, dy1), cropping to (cx1, cy1, cx2, cy2) */ - public 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); - /** - * Same as drawPicture, but only uses the alpha channel of the Picture, and is allowed to destructively modify the RGB - * 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 drawGlyph(Font.Glyph source, int dx1, int dy1, int cx1, int cy1, int cx2, int cy2, int rgb); +/* // 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 */ + // 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; } @@ -90,3 +82,4 @@ public abstract class PixelBuffer { } } +*/ -- 1.7.10.4