libbluray | branch: master | hpi1 <[email protected]> | Thu Oct 9 10:38:55 2014 +0300| [4a111aef7f9902ce2676f8f9e1eb1ab98305e86f] | committer: hpi1
HGraphicsDevice: Support for graphics resolution change > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=4a111aef7f9902ce2676f8f9e1eb1ab98305e86f --- .../bdj/java/org/havi/ui/HGraphicsDevice.java | 32 ++++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/libbluray/bdj/java/org/havi/ui/HGraphicsDevice.java b/src/libbluray/bdj/java/org/havi/ui/HGraphicsDevice.java index 7870951..d7ea2f5 100644 --- a/src/libbluray/bdj/java/org/havi/ui/HGraphicsDevice.java +++ b/src/libbluray/bdj/java/org/havi/ui/HGraphicsDevice.java @@ -19,6 +19,9 @@ package org.havi.ui; +import java.awt.Dimension; + +import org.videolan.GUIManager; import org.videolan.Logger; public class HGraphicsDevice extends HScreenDevice { @@ -67,13 +70,36 @@ public class HGraphicsDevice extends HScreenDevice { public boolean setGraphicsConfiguration(HGraphicsConfiguration hgc) throws SecurityException, HPermissionDeniedException, HConfigurationException { - this.hgc = hgc; logger.unimplemented("setGraphicsConfiguration"); - //org.videolan.GUIManager.getInstance().setBounds(0, 0, 960, 540); - // -- not enough ... + GUIManager mgr = GUIManager.getInstance(); + Dimension d = hgc.getPixelResolution(); + int curWidth = mgr.getWidth(); + int curHeight = mgr.getHeight(); + + if (curWidth != d.width || curHeight != d.height) { + logger.info("Request to switch graphics resolution from " + curWidth + "x" + curHeight + + " to " + d.width + "x" + d.height); + + if (mgr.isVisible()) { + mgr.setVisible(false); + mgr.setBounds(0, 0, d.width, d.height); + mgr.setVisible(true); + } else { + mgr.setBounds(0, 0, d.width, d.height); + } + curWidth = mgr.getWidth(); + curHeight = mgr.getHeight(); + if (curWidth != d.width || curHeight != d.height) { + logger.error("Request to switch graphics resolution from " + curWidth + "x" + curHeight + + " to " + d.width + "x" + d.height + " FAILED"); + return false; + } + } + + this.hgc = hgc; return true; } _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
