RE: ProgressIndicator indeterminate transition bugs
Hi Jonathan: I thought they would be reopened that´s why I did not create them. Here there are: JI-9029954 JI-9029955 By the way I also created another one for a few weeks (28.01.2016) JI-9029025 but I did not receive anything else. I do not know if I am creating the bugs in a wrong place or what. I am using: http://bugreport.java.com/ What can I do in order to write comments in the JBS bugs? Thanks, Diego -Original Message- From: Jonathan Giles [mailto:jonathan.gi...@oracle.com] Sent: Sonntag, 28. Februar 2016 22:54 To: Cirujano Cuesta, Diego; openjfx-dev@openjdk.java.net Subject: Re: ProgressIndicator indeterminate transition bugs If you can, are you able to file bug reports for these? -- Jonathan On 29/02/16 10:49 AM, Cirujano Cuesta, Diego wrote: > Hi all, > > We found two important bugs in ProgressIndicator that are related with the > following tickets: > > https://bugs.openjdk.java.net/browse/JDK-8094829 > https://bugs.openjdk.java.net/browse/JDK-8094078 > > Now are quite critical because in a 4K monitor may cause OutOfMemoryException. > > Using the following example: > " > public class JFXMain extends Application{ > > @Override > public void start(Stage primaryStage) throws Exception { > HBox root = new HBox(); > ToggleButton toggleButton = new ToggleButton(); > ProgressIndicator progressIndicator = new > ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS); > StackPane stackPane = new StackPane(progressIndicator); > stackPane.visibleProperty().bind(toggleButton.selectedProperty()); > root.getChildren().addAll(toggleButton, stackPane); > primaryStage.setScene(new Scene(root)); > primaryStage.show(); > } > } > " > > ** First bug ** > > Starting the Progress Indicator with indeterminate progress will > trigger: rebuildTimeline by ProgressIndicatorSkin and in line 599 > start the animation even is not shown already: > indeterminateTransition.playFromStart(); > > ** Second bug ** > > With the last commits in ProgressIndicator, as commented in JDK-8094829, the > listeners do not care about the real visibility of the node(before it was > used impl_treeVisibleProperty()). The consequence is that the > ProgressIndicator in the example won´t be stopped. > > I can imagine that impl_treeVisibleProperty() should not be used and Jonathan > G. said: " but I can't reliably fix that without an API such as what I expect > the treeVisible API should do." But we did not find such alternative property. > > The solution we though is the usage of internal tree visible property like > this: > > 1. Modify method: > " > protected void updateAnimation(boolean isTreeVisible) { " > 2. Remove current calls to method in > " > @Override protected void handleControlPropertyChanged(String p) { > super.handleControlPropertyChanged(p); > > if ("INDETERMINATE".equals(p)) { > initialize(); > } else if ("PROGRESS".equals(p)) { > updateProgress(); > } > } > " > 3. Add listener at the end of the IndeterminateSpinner contructor the > visibility listener: > " > private IndeterminateSpinner(boolean spinEnabled, Paint > fillOverride) { > [...] > impl_treeVisibleProperty().addListener((obs, oldVal, newVal) ->{ > updateAnimation(newVal); > }); > } > " > > What do you think? > > Additional note: I would like to add one more thing. I think that could be > very good a property ReadOnlyBooleanProperty treeVisibleProperty() available > in all Nodes. > > Please let me know if we can do something else. > > Diego
Re: ProgressIndicator indeterminate transition bugs
If you can, are you able to file bug reports for these? -- Jonathan On 29/02/16 10:49 AM, Cirujano Cuesta, Diego wrote: Hi all, We found two important bugs in ProgressIndicator that are related with the following tickets: https://bugs.openjdk.java.net/browse/JDK-8094829 https://bugs.openjdk.java.net/browse/JDK-8094078 Now are quite critical because in a 4K monitor may cause OutOfMemoryException. Using the following example: " public class JFXMain extends Application{ @Override public void start(Stage primaryStage) throws Exception { HBox root = new HBox(); ToggleButton toggleButton = new ToggleButton(); ProgressIndicator progressIndicator = new ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS); StackPane stackPane = new StackPane(progressIndicator); stackPane.visibleProperty().bind(toggleButton.selectedProperty()); root.getChildren().addAll(toggleButton, stackPane); primaryStage.setScene(new Scene(root)); primaryStage.show(); } } " ** First bug ** Starting the Progress Indicator with indeterminate progress will trigger: rebuildTimeline by ProgressIndicatorSkin and in line 599 start the animation even is not shown already: indeterminateTransition.playFromStart(); ** Second bug ** With the last commits in ProgressIndicator, as commented in JDK-8094829, the listeners do not care about the real visibility of the node(before it was used impl_treeVisibleProperty()). The consequence is that the ProgressIndicator in the example won´t be stopped. I can imagine that impl_treeVisibleProperty() should not be used and Jonathan G. said: " but I can't reliably fix that without an API such as what I expect the treeVisible API should do." But we did not find such alternative property. The solution we though is the usage of internal tree visible property like this: 1. Modify method: " protected void updateAnimation(boolean isTreeVisible) { " 2. Remove current calls to method in " @Override protected void handleControlPropertyChanged(String p) { super.handleControlPropertyChanged(p); if ("INDETERMINATE".equals(p)) { initialize(); } else if ("PROGRESS".equals(p)) { updateProgress(); } } " 3. Add listener at the end of the IndeterminateSpinner contructor the visibility listener: " private IndeterminateSpinner(boolean spinEnabled, Paint fillOverride) { [...] impl_treeVisibleProperty().addListener((obs, oldVal, newVal) ->{ updateAnimation(newVal); }); } " What do you think? Additional note: I would like to add one more thing. I think that could be very good a property ReadOnlyBooleanProperty treeVisibleProperty() available in all Nodes. Please let me know if we can do something else. Diego
ProgressIndicator indeterminate transition bugs
Hi all, We found two important bugs in ProgressIndicator that are related with the following tickets: https://bugs.openjdk.java.net/browse/JDK-8094829 https://bugs.openjdk.java.net/browse/JDK-8094078 Now are quite critical because in a 4K monitor may cause OutOfMemoryException. Using the following example: " public class JFXMain extends Application{ @Override public void start(Stage primaryStage) throws Exception { HBox root = new HBox(); ToggleButton toggleButton = new ToggleButton(); ProgressIndicator progressIndicator = new ProgressIndicator(ProgressIndicator.INDETERMINATE_PROGRESS); StackPane stackPane = new StackPane(progressIndicator); stackPane.visibleProperty().bind(toggleButton.selectedProperty()); root.getChildren().addAll(toggleButton, stackPane); primaryStage.setScene(new Scene(root)); primaryStage.show(); } } " ** First bug ** Starting the Progress Indicator with indeterminate progress will trigger: rebuildTimeline by ProgressIndicatorSkin and in line 599 start the animation even is not shown already: indeterminateTransition.playFromStart(); ** Second bug ** With the last commits in ProgressIndicator, as commented in JDK-8094829, the listeners do not care about the real visibility of the node(before it was used impl_treeVisibleProperty()). The consequence is that the ProgressIndicator in the example won´t be stopped. I can imagine that impl_treeVisibleProperty() should not be used and Jonathan G. said: " but I can't reliably fix that without an API such as what I expect the treeVisible API should do." But we did not find such alternative property. The solution we though is the usage of internal tree visible property like this: 1. Modify method: " protected void updateAnimation(boolean isTreeVisible) { " 2. Remove current calls to method in " @Override protected void handleControlPropertyChanged(String p) { super.handleControlPropertyChanged(p); if ("INDETERMINATE".equals(p)) { initialize(); } else if ("PROGRESS".equals(p)) { updateProgress(); } } " 3. Add listener at the end of the IndeterminateSpinner contructor the visibility listener: " private IndeterminateSpinner(boolean spinEnabled, Paint fillOverride) { [...] impl_treeVisibleProperty().addListener((obs, oldVal, newVal) ->{ updateAnimation(newVal); }); } " What do you think? Additional note: I would like to add one more thing. I think that could be very good a property ReadOnlyBooleanProperty treeVisibleProperty() available in all Nodes. Please let me know if we can do something else. Diego
RE: [Review request] 8090477: Customizable visibility timing for Tooltip
Hi Jonathan, I saw that was already reviewed, good!. I tested it also and it works like a charm. Thanks, Diego
GLS language errors (Was: Internal error: Error loading stock shader FillRoundRect_LinearGradient,_PAD on Vivante ARM)
When I run the glslangValidator on FillRoundRect_LinearGradient_PAD.frag it gives the following error: ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es When I move pixcoord's declaration on line 19 into the main() function it gives no errors. This is the full output of find -name "*.frag" -exec glslangValidator {} \; ERROR: 0:53: 'oTexCoords' : undeclared identifier ERROR: 0:53: 'texture2D' : no matching overloaded function found ERROR: 0:53: '=' : cannot convert from 'const float' to 'temp highp 4-component vector of float' ERROR: 3 compilation errors. No code generated. ERROR: 0:55: 'oTexCoords' : undeclared identifier ERROR: 0:55: 'texture2D' : no matching overloaded function found ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es ERROR: 0:55: 'rgb' : vector field selection out of range ERROR: 0:55: '=' : cannot convert from 'const float' to 'temp highp 3-component vector of float' ERROR: 5 compilation errors. No code generated. ERROR: 0:53: 'oTexCoords' : undeclared identifier ERROR: 0:53: 'texture2D' : no matching overloaded function found WARNING: 0:53: 'return' : type conversion on return values was not explicitly allowed until version 420 ERROR: 2 compilation errors. No code generated. ERROR: 0:55: 'oTexCoords' : undeclared identifier ERROR: 0:55: 'texture2D' : no matching overloaded function found ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es ERROR: 0:55: 'rgb' : vector field selection out of range ERROR: 0:55: '=' : cannot convert from 'const float' to 'temp highp 3-component vector of float' ERROR: 5 compilation errors. No code generated. ERROR: 0:18: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:18: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:53: 'oTexCoords' : undeclared identifier ERROR: 0:53: 'texture2D' : no matching overloaded function found ERROR: 0:53: '=' : cannot convert from 'const float' to 'temp highp 4-component vector of float' ERROR: 3 compilation errors. No code generated. ERROR: 0:55: 'oTexCoords' : undeclared identifier ERROR: 0:55: 'texture2D' : no matching overloaded function found ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es ERROR: 0:55: 'rgb' : vector field selection out of range ERROR: 0:55: '=' : cannot convert from 'const float' to 'temp highp 3-component vector of float' ERROR: 5 compilation errors. No code generated. ERROR: 0:53: 'oTexCoords' : undeclared identifier ERROR: 0:53: 'texture2D' : no matching overloaded function found WARNING: 0:53: 'return' : type conversion on return values was not explicitly allowed until version 420 ERROR: 2 compilation errors. No code generated. ERROR: 0:55: 'oTexCoords' : undeclared identifier ERROR: 0:55: 'texture2D' : no matching overloaded function found ERROR: 0:55: 'scalar swizzle' : not supported with this profile: es ERROR: 0:55: 'rgb' : vector field selection out of range ERROR: 0:55: '=' : cannot convert from 'const float' to 'temp highp 3-component vector of float' ERROR: 5 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:17: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:19: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:17: 'non-constant global initializer' : not supported with this profile: es ERROR: 1 compilation errors. No code generated. ERROR: 0:18: 'non-constant global initializer' : not