···10651065 ?process_event:bool
10661066 -> ?timeout:float
10671067 -> renderer:Renderer.t
10681068+ -> cache: image option ref
10681069 -> Term.t
10691070 -> ui Lwd.root
10701071 -> unit
···10821083 (* FIXME Uses of [quick_sample] and [quick_release] should be replaced by
10831084 [sample] and [release] with the appropriate release management. *)
1084108510851085- let cache = ref None
10861086-10871086 let step
10881087 ?(await_read = await_read_unix)
10891088 ?(process_event = true)
10901089 ?(timeout = -1.0)
10911090 ~renderer
10911091+ ~cache
10921092 term
10931093 root
10941094 =
10951095- Printf.eprintf "running step\n";
10951095+ Printf.eprintf "running step\n";
10961096 let size = Term.size term in
10971097 let image =
10981098 if (not (Lwd.is_damaged root)) && !cache |> Option.is_some
···11051105 (* If we are already damaged then we should re-calculate*)
11061106 if Lwd.is_damaged root then stabilize () else image
11071107 in
11081108- stabilize ()
11091109-11101110- )
11081108+ stabilize ())
11111109 in
11121110 cache := Some image;
11131111 Term.image term image;
···11651163 t ->
11661164 let quit = Lwd.observe (Lwd.get quit) in
11671165 let root = Lwd.observe ~on_invalidate t in
11661166+ let cache = ref None in
11681167 let rec loop () =
11691168 let quit = Lwd.quick_sample quit in
11701169 if not quit
11711170 then (
11721172- step ~process_event:true ?timeout:tick_period ~renderer term root;
11711171+ step ~process_event:true ?timeout:tick_period ~renderer ~cache term root ;
11731172 tick ();
11741173 loop ())
11751174 in