libbluray | branch: master | hpi1 <h...@anonymous.org> | Tue Apr 23 15:26:03 2013 +0300| [32b89b037aa01aa2f3bbbf1a97fcf46c1ad50e4a] | committer: hpi1
Updated setting frame buffer dirty area > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=32b89b037aa01aa2f3bbbf1a97fcf46c1ad50e4a --- .../bdj/java-j2me/java/awt/BDGraphics.java | 28 ++------------------ .../bdj/java-j2se/java/awt/BDGraphics.java | 9 +++++++ src/libbluray/bdj/java/java/awt/BDRootWindow.java | 3 +-- 3 files changed, 12 insertions(+), 28 deletions(-) diff --git a/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java b/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java index b430fb5..c55af5d 100644 --- a/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java +++ b/src/libbluray/bdj/java-j2me/java/awt/BDGraphics.java @@ -84,14 +84,6 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { actualClip = g.clip; clip = g.clip; constrainedRect = g.constrainedRect; - - //public Recangle getDirtyRect() { - //return dirty; - //} - //dirty.x = width; - //dirty.y = height; - //dirty.width = 0; - //dirty.height = 0; } BDGraphics(BDRootWindow window) { @@ -135,11 +127,6 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { fontMetrics = BDFontMetrics.getFontMetrics(font); composite = AlphaComposite.SrcOver; setupClip(); - - dirty.x = width; - dirty.y = height; - dirty.width = 0; - dirty.height = 0; } public Graphics create() { @@ -295,10 +282,7 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { private void drawPointN(int x, int y, int rgb) { - if (x < dirty.x) dirty.x = x; - else if (x > dirty.width) dirty.width = x; - if (y < dirty.y) dirty.y = y; - else if (y > dirty.height) dirty.height = y; + dirty.add(x, y); if (xorColor != null) { backBuffer[y * width + x] ^= xorColor.getRGB() ^ rgb; @@ -350,10 +334,7 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { for (int i = 0; i < h; i++) Arrays.fill(backBuffer, (y + i) * width + x, (y + i) * width + x + w, rgb); - if (x < dirty.x) dirty.x = x; - else if (x + w > dirty.width) dirty.width = x + w; - if (y < dirty.y) dirty.y = y; - else if (y + h > dirty.height) dirty.height = y + h; + dirty.add(rect); } public void fillRect(int x, int y, int w, int h) { @@ -369,11 +350,6 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { for (int Y = y; Y < (y + h); Y++) for (int X = x; X < (x + w); X++) drawPointN(X, Y, rgb); - - if (x < dirty.x) dirty.x = x; - else if (x + w > dirty.width) dirty.width = x + w; - if (y < dirty.y) dirty.y = y; - else if (y + h > dirty.height) dirty.height = y + h; } public void drawRect(int x, int y, int w, int h) { diff --git a/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java b/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java index 918c511..4fb9005 100644 --- a/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java +++ b/src/libbluray/bdj/java-j2se/java/awt/BDGraphics.java @@ -44,6 +44,7 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { private int width; private int height; private int[] backBuffer; + private Rectangle dirty; private GraphicsConfiguration gc; private Color foreground; private Color background; @@ -74,6 +75,7 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { BDGraphics(BDGraphics g) { backBuffer = g.backBuffer; + dirty = g.dirty; width = g.width; height = g.height; gc = g.gc; @@ -95,6 +97,7 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { width = window.getWidth(); height = window.getHeight(); backBuffer = window.getBdBackBuffer(); + dirty = window.getDirtyRect(); gc = window.getGraphicsConfiguration(); foreground = window.getForeground(); background = window.getBackground(); @@ -121,6 +124,7 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { width = image.getWidth(); height = image.getHeight(); backBuffer = image.getBdBackBuffer(); + dirty = image.getDirtyRect(); gc = image.getGraphicsConfiguration(); Component component = image.getComponent(); @@ -362,6 +366,9 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { } private void drawPointN(int x, int y, int rgb) { + + dirty.add(x, y); + if (xorColor != null) { backBuffer[y * width + x] ^= xorColor.getRGB() ^ rgb; return; @@ -405,6 +412,8 @@ class BDGraphics extends Graphics2D implements ConstrainableGraphics { int rgb = background.getRGB(); for (int i = 0; i < h; i++) Arrays.fill(backBuffer, (y + i) * width + x, (y + i) * width + x + w, rgb); + + dirty.add(rect); } public void fillRect(int x, int y, int w, int h) { diff --git a/src/libbluray/bdj/java/java/awt/BDRootWindow.java b/src/libbluray/bdj/java/java/awt/BDRootWindow.java index 78b1441..1f8829d 100644 --- a/src/libbluray/bdj/java/java/awt/BDRootWindow.java +++ b/src/libbluray/bdj/java/java/awt/BDRootWindow.java @@ -43,7 +43,6 @@ public class BDRootWindow extends Frame { if ((width > 0) && (height > 0)) { if ((backBuffer == null) || (getWidth() * getHeight() < width * height)) { backBuffer = new int[width * height]; - dirty = new Rectangle(0, 0, width, height); Arrays.fill(backBuffer, 0); } } @@ -51,7 +50,7 @@ public class BDRootWindow extends Frame { Libbluray.updateGraphic(width, height, null); - dirty.setBounds(0, 0, width, height); + dirty.setBounds(0, 0, width - 1, height - 1); } } _______________________________________________ libbluray-devel mailing list libbluray-devel@videolan.org http://mailman.videolan.org/listinfo/libbluray-devel