libbluray | branch: master | Ian Curtis <[email protected]> | Wed Mar 19 16:11:43 2014 +0200| [902e4f0670d8da6f4548772006b2827dace65e9a] | committer: hpi1
BDGraphics: implement drawOval and fillOval > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=902e4f0670d8da6f4548772006b2827dace65e9a --- .../bdj/java-j2me/java/awt/BDGraphics.java | 25 ++++++++++++++++++-- .../bdj/java-j2se/java/awt/BDGraphics.java | 25 ++++++++++++++++++-- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java b/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java index e0ad2a0..c29a6f0 100644 --- a/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java +++ b/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java @@ -554,12 +554,33 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { /** Draws an oval to fit in the given rectangle */ public void drawOval(int x, int y, int w, int h) { - logger.unimplemented("drawOval"); + + float angleIncriment = 180 / h; + int rgb = foreground.getRGB(); + + for (int i = 0; i < h; i++) { + int offset = (int) (w/2 * Math.sin(angleIncriment*i)); + int startX = x + w/2 - offset; + int endX = x + w/2 + offset; + + drawPoint(startX, y + i, rgb); + drawPoint(endX, y + i, rgb); + } } /** Fills an oval to fit in the given rectangle */ public void fillOval(int x, int y, int w, int h) { - logger.unimplemented("fillOval"); + + float angleIncriment = angleIncriment = 180 / h; + int rgb = foreground.getRGB(); + + for (int i = 0; i < h; i++) { + int offset = (int) (w/2 * Math.sin(angleIncriment*i)); + int startX = x + w/2 - offset; + int endX = x + w/2 + offset; + + drawSpan(startX, y + i, endX - startX, rgb); + } } /** diff --git a/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java b/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java index 8f5d66b..6a841f2 100644 --- a/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java +++ b/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java @@ -636,12 +636,33 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { /** Draws an oval to fit in the given rectangle */ public void drawOval(int x, int y, int w, int h) { - logger.unimplemented("drawOval"); + + float angleIncriment = 180 / h; + int rgb = foreground.getRGB(); + + for (int i = 0; i < h; i++) { + int offset = (int) (w/2 * Math.sin(angleIncriment*i)); + int startX = x + w/2 - offset; + int endX = x + w/2 + offset; + + drawPoint(startX, y + i, rgb); + drawPoint(endX, y + i, rgb); + } } /** Fills an oval to fit in the given rectangle */ public void fillOval(int x, int y, int w, int h) { - logger.unimplemented("fillOval"); + + float angleIncriment = angleIncriment = 180 / h; + int rgb = foreground.getRGB(); + + for (int i = 0; i < h; i++) { + int offset = (int) (w/2 * Math.sin(angleIncriment*i)); + int startX = x + w/2 - offset; + int endX = x + w/2 + offset; + + drawSpan(startX, y + i, endX - startX, rgb); + } } /** _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
