Salut Pascal
Super tes modifs, c'est vraiment bien plus pratique ! Merci :-)
Je rencontre un bug par contre, lorsque je fais un coup de molette en traçant une ligne, darktable ne répond plus (ça fait comme une boucle infinie).
Voilà la backtrace que j'obtiens lorsque je lance le programme avec gdb et que je l'interrompt à ce moment là :
Code :
(gdb) bt full
#0 0x00007ffff6d1e397 in g_list_last () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#1 0x00007ffff6d1e3df in g_list_append () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#2 0x00007fff9d726918 in interpolate_paths (p=p@entry=0x7fffffffa980) at /home/rawfiner/Documents/darktable/src/iop/liquify.c:1704
w = 0x35237d0
t = <optimized out>
total_length = 0.261360198
arc_length = <optimized out>
data = 0x7fffffffa9cc
p2 = 0x7fffffffa9e0
warp1 = 0x7fffffffa994
p1 = 0x7fffffffa994
k = <optimized out>
l = 0x1271600
#3 0x00007fff9d7284fe in _draw_paths (cr=cr@entry=0x17455a0, scale=scale@entry=0.000902237545, p=p@entry=0x7fffffffa980, layers=layers@entry=0x2f2f280, pt=pt@entry=0x0, module=<optimized out>)
at /home/rawfiner/Documents/darktable/src/iop/liquify.c:1762
hit = {layer = DT_LIQUIFY_LAYER_BACKGROUND, elem = 0x0}
do_hit_test = 0
interpolated = <optimized out>
#4 0x00007fff9d72b447 in draw_paths (module=<optimized out>, params=0x7fffffffa980, scale=<optimized out>, cr=0x17455a0) at /home/rawfiner/Documents/darktable/src/iop/liquify.c:2098
g = 0x2bb60f0
layers = 0x2f2f280
Plus précisémment, en me plaçant sur le commit ee66fa72d9ca2051bee9bd7d6eef0a307aebf8f0 tout va bien, la molette se comporte comme attendu.
En se plaçant sur le commit 9736b22680631aa6004cab887689c417655d185e par contre, il y a le bug.
J'ai testé ça à la fois en compilation "normale" sur linux mint et en compilant darktable via docker (basé sur debian).
Quand on fait un git diff entre les 2 commits, on voit comme seule différence la modif du commit 3bfd66a19ecdeee012ab21a83697137d81676072 :
Code :
~/Documents/darktable/build $ git diff ee66fa72d9ca2051bee9bd7d6eef0a307aebf8f0 9736b22680631aa6004cab887689c417655d185e
diff --git a/src/develop/imageop.c b/src/develop/imageop.c
index 72ae925..af76018 100644
--- a/src/develop/imageop.c
+++ b/src/develop/imageop.c
@@ -1484,9 +1484,6 @@ void dt_iop_commit_params(dt_iop_module_t *module, dt_iop_params_t *params,
uint64_t hash = 5381;
piece->hash = 0;
- // this should be redundant! (but is not)
- memcpy(module->blend_params, blendop_params, sizeof(dt_develop_blend_params_t));
-
if(piece->enabled)
{
/* construct module params data for hash calc */
@@ -1505,6 +1502,8 @@ void dt_iop_commit_params(dt_iop_module_t *module, dt_iop_params_t *params,
pos += sizeof(dt_develop_blend_params_t);
}
memcpy(piece->blendop_data, blendop_params, sizeof(dt_develop_blend_params_t));
+ // this should be redundant! (but is not)
+ memcpy(module->blend_params, blendop_params, sizeof(dt_develop_blend_params_t));
/* and we add masks */
dt_masks_group_get_hash_buffer(grp, str + pos);