From 483d47795fd1b4bd4cf892960ced8e961f7a8a3c Mon Sep 17 00:00:00 2001 From: Steve Vaughan Date: Tue, 16 Nov 2010 15:35:25 -0500 Subject: Clone Capabilities on input, providing a local copy when requested. This eliminates the cloning that was occuring for each swap buffer call. This is the first step in implementing immutable Capabilities. --- .../media/nativewindow/DefaultGraphicsConfiguration.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/nativewindow') diff --git a/src/nativewindow/classes/javax/media/nativewindow/DefaultGraphicsConfiguration.java b/src/nativewindow/classes/javax/media/nativewindow/DefaultGraphicsConfiguration.java index 47f02c7cc..42350e6c1 100644 --- a/src/nativewindow/classes/javax/media/nativewindow/DefaultGraphicsConfiguration.java +++ b/src/nativewindow/classes/javax/media/nativewindow/DefaultGraphicsConfiguration.java @@ -40,8 +40,10 @@ public class DefaultGraphicsConfiguration implements Cloneable, AbstractGraphics public DefaultGraphicsConfiguration(AbstractGraphicsScreen screen, Capabilities capsChosen, Capabilities capsRequested) { this.screen = screen; - this.capabilitiesChosen = capsChosen; - this.capabilitiesRequested = capsRequested; + + // Create "immutable" copies of capabilities. + this.capabilitiesChosen = (Capabilities) capsChosen.clone(); + this.capabilitiesRequested = (Capabilities) capsRequested.clone(); } public Object clone() { @@ -56,12 +58,14 @@ public class DefaultGraphicsConfiguration implements Cloneable, AbstractGraphics return screen; } + // TODO: Return immutable instance. public Capabilities getChosenCapabilities() { - return (null!=capabilitiesChosen)?(Capabilities)capabilitiesChosen.clone():null; + return capabilitiesChosen; } + // TODO: Return immutable instance. public Capabilities getRequestedCapabilities() { - return (null!=capabilitiesRequested)?(Capabilities)capabilitiesRequested.clone():null; + return capabilitiesRequested; } public AbstractGraphicsConfiguration getNativeGraphicsConfiguration() { -- cgit v1.2.3