Render bug
Jeff Martin
jeff at reportmill.com
Thu Aug 14 20:02:33 UTC 2014
Okay, here’s the jira:
Render bug animating over node with lighting effect
I also simplified the example (happens with a Rectangle background as well as ImageView).
jeff
On Aug 13, 2014, at 3:20 PM, Chien Yang <chien.yang at oracle.com> wrote:
> 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.paint.Color;
import javafx.scene.shape.*;
import javafx.stage.Stage;
import javafx.util.Duration;
public class DrawTurd extends Application {
public void start(Stage aStage)
{
// Creat background rect with lighting effect
Rectangle rect = new Rectangle(0,0,500,400); rect.setFill(Color.YELLOW);
Light.Distant light = new Light.Distant(); light.setAzimuth(60); light.setElevation(120);
Lighting lighting = new Lighting(); lighting.setLight(light); lighting.setSurfaceScale(10);
rect.setEffect(lighting);
// Create foreground path triangle with rotation transition animation
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);
RotateTransition rt = new RotateTransition(Duration.millis(3000), path);
rt.setByAngle(180); rt.setCycleCount(4); rt.setAutoReverse(true); rt.play();
// Create group, add nodes, set scene root, show stage
Group group = new Group(rect, path);
aStage.setScene(new Scene(group));
aStage.show();
}
}
More information about the openjfx-dev
mailing list