Render bug
Chien Yang
chien.yang at oracle.com
Wed Aug 13 20:20:54 UTC 2014
This looks like a bug in JavaFX when applying the lighting effect. I was
able to reproduce the dirty rect rendering on my system. The bug went
away if I commented out the following line:
iview.setEffect(lighting);
Can you please file a JIRA so that we will fix it?
Thanks,
- Chien
On 8/13/2014 8:33 AM, Jeff Martin wrote:
> I’m getting a rendering bug with a simple rotating path in front of an ImageView (with lighting effect) on Mac OS with 8u20:
>
> http://reportmill.com/examples/Renderbug/Renderbug.jpg
>
> Looks like some sort of dirty rect problem. Am I doing something wrong or should I file a bug?
>
> The code is below. If anyone has an idea for a quick work around, let me know.
>
> jeff
>
>
>
> import javafx.animation.RotateTransition;
> import javafx.application.Application;
> import javafx.scene.*;
> import javafx.scene.effect.*;
> import javafx.scene.image.*;
> import javafx.scene.paint.Color;
> import javafx.scene.shape.*;
> import javafx.stage.Stage;
> import javafx.util.Duration;
> import snap.web.WebURL;
>
> /**
> * A custom class.
> */
> public class DrawTurd extends Application {
>
> public void start(Stage aStage)
> {
> // Creat background image - file at http://reportmill.com/examples/Renderbug/Wood.jpg
> Image image = new Image(getClass().getResourceAsStream("Wood.jpg"));
> ImageView iview = new ImageView(image);
>
> // Create foreground path triangle
> Path path = new Path();
> path.getElements().add(new MoveTo(100,100)); path.getElements().add(new LineTo(180,180));
> path.getElements().add(new LineTo(260,100)); path.getElements().add(new ClosePath());
> path.setFill(Color.RED); path.setStroke(Color.BLACK);
>
> // Create lighting effect and add to ImageView
> Light.Distant effect = new Light.Distant(); effect.setAzimuth(60); effect.setElevation(120);
> Lighting lighting = new Lighting(); lighting.setSpecularConstant(.15);
> lighting.setLight(effect); lighting.setSurfaceScale(10);
> iview.setEffect(lighting);
>
> // Create group, add nodes, set scene root, show stage
> Group group = new Group(iview, path);
> aStage.setScene(new Scene(group));
> aStage.show();
>
> // Add rotation transition animation
> RotateTransition rt = new RotateTransition(Duration.millis(3000), path);
> rt.setByAngle(180); rt.setCycleCount(4); rt.setAutoReverse(true); rt.play();
> }
>
> }
>
More information about the openjfx-dev
mailing list