Commit 07a4847
committed
Introduce pixelpipe zoom knocking
Currently we use dt_dev_pixelpipe_set_shutdown() to stop a running pixelpipe asap, this is
used for changing the nodes involved in the pipe (history changes) or when toggling between
darkroom HQ mode on/off as examples, we do this for UI responsiveness.
Being in darkroom mode **while** the dt_dev_pixelpipe_process() is still running, a UI move of the
the displayed part of the main canvas or zooming-in/out results in a new control job which is
currently processed *after the complete* dt_dev_pixelpipe_process().
This commit adds an early-exit & restart pipe mechanism for a faster UI response, avoiding up to
one pixelpipe run with a good chance of finding valid pixelpipe cache data.
1. A new shutdown mode DT_DEV_PIXELPIPE_STOP_ZOOM has been added to dt_dev_pixelpipe_stopper_t.
It is
a) checked, reported and handled in dt_dev_process_image_job()
b) tested in dt_dev_pixelpipe_process() via _module_pipe_stop() making sure the pipe
possibly exits with TRUE state and a shutdown mode.
In all cases we ensure pixelpipe cache integrity via _module_pipe_stop().
2. How is this shutdown mode induced?
If we zoom in/out or reposition the main canvas we set shutdown to DT_DEV_PIXELPIPE_STOP_ZOOM
in dt_dev_zoom_move() enforcing the pipe restart.1 parent 8f52e41 commit 07a4847
3 files changed
Lines changed: 16 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3268 | 3268 | | |
3269 | 3269 | | |
3270 | 3270 | | |
| 3271 | + | |
| 3272 | + | |
| 3273 | + | |
3271 | 3274 | | |
| 3275 | + | |
3272 | 3276 | | |
3273 | 3277 | | |
3274 | 3278 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | | - | |
| 52 | + | |
| 53 | + | |
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
| |||
108 | 109 | | |
109 | 110 | | |
110 | 111 | | |
| 112 | + | |
111 | 113 | | |
112 | 114 | | |
113 | 115 | | |
| |||
1323 | 1325 | | |
1324 | 1326 | | |
1325 | 1327 | | |
1326 | | - | |
1327 | | - | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
1328 | 1333 | | |
1329 | 1334 | | |
1330 | 1335 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
130 | 133 | | |
131 | 134 | | |
132 | 135 | | |
| |||
140 | 143 | | |
141 | 144 | | |
142 | 145 | | |
| 146 | + | |
143 | 147 | | |
144 | 148 | | |
145 | 149 | | |
| |||
0 commit comments