libbluray | branch: master | hpi1 <h...@anonymous.org> | Sun Apr 17 15:12:04 2016 +0300| [16294aff33a0586838d2a7a012219e2a8df143cb] | committer: hpi1
Make BDGraphics instance of DVBGraphics Fixes Reing Over Me > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=16294aff33a0586838d2a7a012219e2a8df143cb --- .../bdj/java/java/awt/BDGraphicsBase.java | 51 +++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/src/libbluray/bdj/java/java/awt/BDGraphicsBase.java b/src/libbluray/bdj/java/java/awt/BDGraphicsBase.java index 24aa2c8..72ef25f 100644 --- a/src/libbluray/bdj/java/java/awt/BDGraphicsBase.java +++ b/src/libbluray/bdj/java/java/awt/BDGraphicsBase.java @@ -31,13 +31,16 @@ import java.awt.image.ImageConsumer; import java.awt.image.ImageObserver; import org.dvb.ui.DVBBufferedImage; +import org.dvb.ui.DVBAlphaComposite; +import org.dvb.ui.DVBGraphics; +import org.dvb.ui.UnsupportedDrawingOperationException; import sun.awt.ConstrainableGraphics; import org.videolan.GUIManager; import org.videolan.Logger; -abstract class BDGraphicsBase extends Graphics2D implements ConstrainableGraphics { +abstract class BDGraphicsBase extends DVBGraphics implements ConstrainableGraphics { private static final Color DEFAULT_COLOR = Color.BLACK; private static final Font DEFAULT_FONT = new Font("Dialog", Font.PLAIN, 12); @@ -146,6 +149,52 @@ abstract class BDGraphicsBase extends Graphics2D implements ConstrainableGraphic return new BDGraphics((BDGraphics)this); } + /* + * DVBGraphics methods + */ + + public int[] getAvailableCompositeRules() + { + /* + int[] rules = { DVBAlphaComposite.CLEAR, DVBAlphaComposite.SRC, + DVBAlphaComposite.SRC_OVER, DVBAlphaComposite.DST_OVER, + DVBAlphaComposite.SRC_IN, DVBAlphaComposite.DST_IN, + DVBAlphaComposite.SRC_OUT, DVBAlphaComposite.DST_OUT }; + */ + int[] rules = { + DVBAlphaComposite.CLEAR, + DVBAlphaComposite.SRC, + DVBAlphaComposite.SRC_OVER }; + + return rules; + } + + public DVBAlphaComposite getDVBComposite() + { + Composite comp = getComposite(); + if (!(comp instanceof AlphaComposite)) + return null; + return DVBAlphaComposite.getInstance( + ((AlphaComposite)comp).getRule(), + ((AlphaComposite)comp).getAlpha()); + } + + public void setDVBComposite(DVBAlphaComposite comp) + throws UnsupportedDrawingOperationException + { + if ((comp.getRule() < DVBAlphaComposite.CLEAR) || + (comp.getRule() > DVBAlphaComposite.SRC_OVER)) { + logger.error("setDVBComposite() FAILED: unsupported rule " + comp.getRule()); + throw new UnsupportedDrawingOperationException("Unsupported composition rule: " + comp.getRule()); + } + + setComposite(AlphaComposite.getInstance(comp.getRule(), comp.getAlpha())); + } + + /* + * + */ + public void translate(int x, int y) { originX += x; originY += y; _______________________________________________ libbluray-devel mailing list libbluray-devel@videolan.org https://mailman.videolan.org/listinfo/libbluray-devel