X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fgraphics%2FPixelBuffer.java;h=1f49b94fd823caedb50caa7fd87982315fc724a3;hp=5e9821b1afbfd340bdc27964ca675f7a599d4e28;hb=531e31402f74fa636b2d9a2a367305bfd0777cdc;hpb=76b21655a0710caf4f972c107a3ab991032d7e10 diff --git a/src/org/ibex/graphics/PixelBuffer.java b/src/org/ibex/graphics/PixelBuffer.java index 5e9821b..1f49b94 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,23 @@ 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 fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3, int color); + public abstract void drawPicture(Picture p, Affine a, Mesh h); + public abstract void drawGlyph(Font.Glyph source, Affine a, Mesh h, int rgb, int bg); + public abstract void stroke(Mesh p, int color); + public abstract void fill(Mesh 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 +84,4 @@ public abstract class PixelBuffer { } } +*/