libbluray | branch: master | joakim <joakim@mefx.(none)> | Tue Feb 5 00:37:16 2013 +0100| [6cfbfb3f9c7f99624ed3b58f39d7ef2696cfee8e] | committer: hpi1
Clip out of bounds image draw request > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=6cfbfb3f9c7f99624ed3b58f39d7ef2696cfee8e --- src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java | 13 +++++++++++++ src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java b/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java index 915f82d..b430fb5 100644 --- a/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java +++ b/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java @@ -613,6 +613,19 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { if (!consumer.isComplete(observer)) return false; } + + if(sx + sw > bdImage.width) { + int n = sx + sw - bdImage.width; + dw -= dw * n / sw; + sw -= n; + } + + if(sy + sh > bdImage.height) { + int n = sy + sh - bdImage.height; + dh -= dh * n / sh; + sh -= n; + } + if ((sw > 0) && (sh > 0) && ((sx != 0) || (sy != 0) || (sw != bdImage.width) || (sh != bdImage.height))) { BDImage subImage = new BDImage(null, sw, sh, null); diff --git a/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java b/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java index 0be4bda..278dba1 100644 --- a/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java +++ b/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java @@ -690,6 +690,19 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { return false; } } + + if(sx + sw > bdImage.width) { + int n = sx + sw - bdImage.width; + dw -= dw * n / sw; + sw -= n; + } + + if(sy + sh > bdImage.height) { + int n = sy + sh - bdImage.height; + dh -= dh * n / sh; + sh -= n; + } + if ((sw > 0) && (sh > 0) && ((sx != 0) || (sy != 0) || (sw != bdImage.width) || (sh != bdImage.height))) { BDImage subImage = new BDImage(null, sw, sh, null); _______________________________________________ libbluray-devel mailing list [email protected] http://mailman.videolan.org/listinfo/libbluray-devel
