On Mon, 7 Oct 2024 16:50:59 GMT, Thiago Milczarek Sayao <tsa...@openjdk.org> 
wrote:

>> When creating a Scene, a `DrawableInfo` is allocated with `malloc`. When 
>> scene changes, this is called on `WindowStage.java`:
>> 
>> `QuantumRenderer.getInstance().disposePresentable(painter.presentable);   // 
>> latched on RT`
>> 
>> But the underlying `DrawableInfo` is never freed.
>> 
>> I also think this should be done when the Stage is closed.
>> 
>> To test:
>> 
>> import javafx.animation.Animation;
>> import javafx.animation.KeyFrame;
>> import javafx.animation.KeyValue;
>> import javafx.animation.Timeline;
>> import javafx.application.Application;
>> import javafx.scene.Scene;
>> import javafx.scene.control.TextField;
>> import javafx.scene.control.Label;
>> import javafx.scene.layout.Pane;
>> import javafx.scene.layout.StackPane;
>> import javafx.scene.layout.VBox;
>> import javafx.scene.paint.Color;
>> import javafx.stage.Stage;
>> import javafx.util.Duration;
>> 
>> public class TestScenes extends Application {
>> 
>>     @Override
>>     public void start(Stage stage) {
>>         Timeline timeline = new Timeline(
>>                 new KeyFrame(Duration.millis(100), e -> 
>> stage.setScene(createScene("Scene 1", Color.RED))),
>>                 new KeyFrame(Duration.millis(200), e -> 
>> stage.setScene(createScene("Scene 2", Color.BLUE))),
>>                 new KeyFrame(Duration.millis(300), e -> 
>> stage.setScene(createScene("Scene 3", Color.GREEN)))
>>         );
>> 
>>         timeline.setCycleCount(Animation.INDEFINITE);
>>         timeline.play();
>> 
>>         stage.show();
>>     }
>> 
>>     private Scene createScene(String text, Color color) {
>>         return new Scene(new StackPane(), 400, 300, color);
>>     }
>> 
>>     public static void main(String[] args) {
>>         launch(TestScenes.class, args);
>>     }
>> }
>
> Thiago Milczarek Sayao has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Let `createGraphics` fail if called after dispose

LGTM, seems fine on Windows with ES2 backend

-------------

Marked as reviewed by lkostyra (Committer).

PR Review: https://git.openjdk.org/jfx/pull/1586#pullrequestreview-2354177809

Reply via email to