Improve Layer view with Blending menu icons

New icons for blending modes declared in Shader class, used in combo box for blending mode selection in imguiVisitor, and added source context menu in Layer view.
This commit is contained in:
Bruno Herbelin
2024-11-02 23:16:25 +01:00
parent 859d8cc86c
commit a74445f9e4
20 changed files with 951 additions and 69 deletions

View File

@@ -593,7 +593,6 @@ set(VMIX_RSC_FILES
./rsc/mesh/icon_vimix.ply
./rsc/mesh/icon_group_vimix.ply
./rsc/mesh/icon_circles.ply
./rsc/mesh/icon_dots.ply
./rsc/mesh/icon_empty.ply
./rsc/mesh/icon_lock.ply
./rsc/mesh/icon_unlock.ply
@@ -603,7 +602,6 @@ set(VMIX_RSC_FILES
./rsc/mesh/icon_clock.ply
./rsc/mesh/icon_clock_hand.ply
./rsc/mesh/icon_grid.ply
./rsc/mesh/icon_rightarrow.ply
./rsc/mesh/icon_crop.ply
./rsc/mesh/icon_eye.ply
./rsc/mesh/icon_eye_slash.ply
@@ -614,6 +612,14 @@ set(VMIX_RSC_FILES
./rsc/mesh/icon_text.ply
./rsc/mesh/icon_play.ply
./rsc/mesh/icon_fastforward.ply
./rsc/mesh/icon_blend_normal.ply
./rsc/mesh/icon_blend_add.ply
./rsc/mesh/icon_blend_subtract.ply
./rsc/mesh/icon_blend_mult.ply
./rsc/mesh/icon_blend_soft_light.ply
./rsc/mesh/icon_blend_hard_light.ply
./rsc/mesh/icon_blend_soft_sub.ply
./rsc/mesh/icon_blend_lighten.ply
./rsc/mesh/h_line.ply
./rsc/mesh/h_mark.ply
./rsc/shaders/filters/default.glsl

Binary file not shown.

View File

@@ -0,0 +1,54 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 22
property float x
property float y
property float z
property float s
property float t
element face 20
property list uchar uint vertex_indices
end_header
-0.072711065 0.091354586 0 0.04761905 0
0.11023354 0.109645195 0 0.23809524 0
-0.072711065 0.109645195 0 0 0
0.091939084 0.091354586 0 0.0952381 0
0.11023354 -0.07326077 0 0.1904762 0
0.091939084 -0.07326077 0 0.14285715 0
-0.10929998 -0.109841965 0 0.33333334 0
-0.0544166 -0.0092436895 0 0.95238096 0
-0.10929998 0.07306399 0 0.2857143 0
-0.026974909 0.01819221 0 0.47619048 0
0.073644616 0.07306399 0 0.42857143 0
-0.008680448 0.01819221 0 0.52380955 0
0.01876124 -0.0092436895 0 0.61904764 0
0.073644616 -0.109841965 0 0.3809524 0
-0.026974909 -0.0092436895 0 1 0
-0.008680448 -0.0092436895 0 0.5714286 0
-0.0544166 -0.027534284 0 0.9047619 0
0.01876124 -0.027534284 0 0.6666667 0
-0.026974909 -0.027534284 0 0.85714287 0
-0.026974909 -0.054970175 0 0.8095238 0
-0.008680448 -0.054970175 0 0.7619048 0
-0.008680448 -0.027534284 0 0.71428573 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 9 10 8
3 9 11 10
3 11 12 10
3 12 13 10
3 7 14 9
3 15 12 11
3 6 16 7
3 17 13 12
3 6 18 16
3 6 19 18
3 20 17 21
3 20 13 17
3 6 20 19
3 6 13 20

View File

@@ -0,0 +1,222 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 106
property float x
property float y
property float z
property float s
property float t
element face 104
property list uchar uint vertex_indices
end_header
-0.07268818 0.09148041 0 0.00952381 0
0.11037082 0.109782435 0 0.04761905 0
-0.07268818 0.109782435 0 0 0
0.092064925 0.09148041 0 0.01904762 0
0.11037082 -0.073237896 0 0.03809524 0
0.092064925 -0.073237896 0 0.028571429 0
-0.10929998 -0.109841965 0 0.06666667 0
-0.06168455 -0.00045199692 0 0.83809525 0
-0.10929998 0.07317837 0 0.057142857 0
-0.060415167 0.0023493767 0 0.84761906 0
-0.05896481 0.005064994 0 0.85714287 0
-0.057337295 0.0076856837 0 0.8666667 0
-0.055536423 0.010202259 0 0.8761905 0
-0.053566005 0.012605518 0 0.8857143 0
-0.051429853 0.0148862675 0 0.8952381 0
-0.049147803 0.017021112 0 0.9047619 0
-0.046743296 0.018990196 0 0.9142857 0
-0.044225514 0.020789735 0 0.9238095 0
-0.041603655 0.022415929 0 0.93333334 0
-0.038886912 0.023864947 0 0.94285715 0
-0.036084473 0.025133006 0 0.95238096 0
0.07375901 0.07317837 0 0.08571429 0
-0.03320553 0.026216306 0 0.96190476 0
-0.030259289 0.027111016 0 0.9714286 0
-0.027254917 0.027813353 0 0.9809524 0
-0.024201617 0.028319515 0 0.9904762 0
-0.021108583 0.02862569 0 1 0
-0.017985001 0.02872803 0 0.0952381 0
-0.014862224 0.028624527 0 0.104761906 0
-0.011770047 0.02831734 0 0.114285715 0
-0.008717656 0.027810268 0 0.123809524 0
-0.0057142302 0.027107142 0 0.13333334 0
-0.0027689561 0.026211746 0 0.14285715 0
0.00010898709 0.02512788 0 0.15238096 0
0.0029104128 0.023859344 0 0.16190477 0
0.005626127 0.022409968 0 0.17142858 0
0.008246966 0.020783536 0 0.18095239 0
0.01076372 0.018983863 0 0.1904762 0
0.013167232 0.01701472 0 0.2 0
0.015448287 0.014879957 0 0.20952381 0
0.017583512 0.012599371 0 0.21904762 0
0.019553058 0.010196373 0 0.22857143 0
0.021353118 0.0076801404 0 0.23809524 0
0.022979893 0.005059868 0 0.24761905 0
0.024429597 0.00234472 0 0.25714287 0
0.025698386 -0.00045610964 0 0.26666668 0
0.07375901 -0.109841965 0 0.07619048 0
-0.062769145 -0.0033299178 0 0.82857144 0
0.026782475 -0.003333442 0 0.2761905 0
-0.06366517 -0.006275207 0 0.81904763 0
0.027678065 -0.0062780976 0 0.2857143 0
-0.06436878 -0.009278677 0 0.8095238 0
0.02838134 -0.00928089 0 0.2952381 0
-0.06487619 -0.012331136 0 0.8 0
0.028888516 -0.012332641 0 0.30476192 0
-0.06518359 -0.01542341 0 0.7904762 0
0.029195763 -0.01542417 0 0.31428573 0
-0.06528716 -0.01854629 0 0.7809524 0
0.029299282 -0.01854629 0 0.32380953 0
-0.06518472 -0.021669969 0 0.7714286 0
0.029196896 -0.021669209 0 0.33333334 0
0.028890662 -0.02476158 0 0.34285715 0
-0.064878345 -0.024763092 0 0.7619048 0
0.028384395 -0.027814232 0 0.35238096 0
-0.06437184 -0.02781646 0 0.75238097 0
0.027681924 -0.030817963 0 0.36190477 0
-0.063669026 -0.030820876 0 0.74285716 0
0.026787005 -0.033763595 0 0.37142858 0
-0.0627737 -0.033767134 0 0.73333335 0
0.025703497 -0.036641926 0 0.3809524 0
-0.06168968 -0.036646053 0 0.72380954 0
0.024435185 -0.03944377 0 0.3904762 0
-0.06042077 -0.039448433 0 0.71428573 0
0.022985853 -0.042159945 0 0.4 0
-0.058970775 -0.04216508 0 0.7047619 0
0.021359317 -0.044781245 0 0.40952381 0
-0.05734351 -0.04478679 0 0.6952381 0
0.019559406 -0.04729849 0 0.41904762 0
-0.055542786 -0.04730437 0 0.6857143 0
0.01758989 -0.0497025 0 0.42857143 0
-0.0535724 -0.049708635 0 0.6761905 0
0.015454605 -0.051984064 0 0.43809524 0
-0.05143617 -0.05199038 0 0.6666667 0
0.013173364 -0.05411977 0 0.44761905 0
-0.04915395 -0.05412616 0 0.6571429 0
0.010769598 -0.056089774 0 0.45714286 0
-0.046749182 -0.056096125 0 0.64761907 0
0.008252494 -0.057890262 0 0.46666667 0
-0.044231065 -0.057896476 0 0.63809526 0
0.005631253 -0.059517436 0 0.47619048 0
-0.041608796 -0.059523392 0 0.62857145 0
0.002915062 -0.06096748 0 0.4857143 0
-0.038891576 -0.060973078 0 0.61904764 0
0.00011309981 -0.062236592 0 0.4952381 0
-0.03608861 -0.062241722 0 0.60952383 0
-0.002765432 -0.063320965 0 0.50476193 0
-0.033209078 -0.06332551 0 0.6 0
-0.0057113394 -0.064216785 0 0.51428574 0
-0.030262187 -0.064220645 0 0.5904762 0
-0.008715443 -0.064920254 0 0.52380955 0
-0.027257137 -0.064923316 0 0.5809524 0
-0.011768557 -0.06542756 0 0.53333336 0
-0.02420313 -0.0654297 0 0.5714286 0
-0.014861472 -0.06573489 0 0.54285717 0
-0.02110935 -0.06573602 0 0.5619048 0
-0.017985001 -0.06583844 0 0.552381 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 9 10 8
3 10 11 8
3 11 12 8
3 12 13 8
3 13 14 8
3 14 15 8
3 15 16 8
3 16 17 8
3 17 18 8
3 18 19 8
3 19 20 8
3 20 21 8
3 20 22 21
3 22 23 21
3 23 24 21
3 24 25 21
3 25 26 21
3 26 27 21
3 27 28 21
3 28 29 21
3 29 30 21
3 30 31 21
3 31 32 21
3 32 33 21
3 33 34 21
3 34 35 21
3 35 36 21
3 36 37 21
3 37 38 21
3 38 39 21
3 39 40 21
3 40 41 21
3 41 42 21
3 42 43 21
3 43 44 21
3 44 45 21
3 45 46 21
3 6 47 7
3 48 46 45
3 6 49 47
3 50 46 48
3 6 51 49
3 52 46 50
3 6 53 51
3 54 46 52
3 6 55 53
3 56 46 54
3 6 57 55
3 58 46 56
3 6 59 57
3 60 46 58
3 61 46 60
3 6 62 59
3 63 46 61
3 6 64 62
3 65 46 63
3 6 66 64
3 67 46 65
3 6 68 66
3 69 46 67
3 6 70 68
3 71 46 69
3 6 72 70
3 73 46 71
3 6 74 72
3 75 46 73
3 6 76 74
3 77 46 75
3 6 78 76
3 79 46 77
3 6 80 78
3 81 46 79
3 6 82 80
3 83 46 81
3 6 84 82
3 85 46 83
3 6 86 84
3 87 46 85
3 6 88 86
3 89 46 87
3 6 90 88
3 91 46 89
3 6 92 90
3 93 46 91
3 6 94 92
3 95 46 93
3 6 96 94
3 97 46 95
3 6 98 96
3 99 46 97
3 6 100 98
3 101 46 99
3 6 102 100
3 103 46 101
3 6 104 102
3 105 46 103
3 6 105 104
3 6 46 105

View File

@@ -0,0 +1,44 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 17
property float x
property float y
property float z
property float s
property float t
element face 15
property list uchar uint vertex_indices
end_header
-0.07285437 0.09114095 0 0.0625 0
0.10981976 0.109412126 0 0.3125 0
-0.07285437 0.109412126 0 0 0
0.091544725 0.09114095 0 0.125 0
0.10981976 -0.07322149 0 0.25 0
0.091544725 -0.07322149 0 0.1875 0
-0.10948064 -0.109841965 0 0.4375 0
-0.058492586 0.025407545 0 0.625 0
-0.10948064 0.07286977 0 0.375 0
0.07326969 0.07286977 0 0.5625 0
0.028688602 -0.0070309266 0 0.6875 0
0.07326969 -0.109841965 0 0.5 0
-0.058492586 0.0056197196 0 1 0
-0.058492586 -0.04143212 0 0.875 0
0.009610474 -0.017736696 0 0.9375 0
0.028688602 -0.02860304 0 0.75 0
-0.058492586 -0.060863078 0 0.8125 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 7 10 9
3 10 11 9
3 6 12 7
3 6 13 12
3 13 14 12
3 15 11 10
3 16 11 15
3 6 16 13
3 6 11 16

View File

@@ -0,0 +1,54 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 22
property float x
property float y
property float z
property float s
property float t
element face 20
property list uchar uint vertex_indices
end_header
-0.073128715 0.0914061 0 0.04761905 0
0.109534174 0.10966853 0 0.23809524 0
-0.073128715 0.10966853 0 0 0
0.091267884 0.0914061 0 0.0952381 0
0.109534174 -0.07295578 0 0.1904762 0
0.091267884 -0.07295578 0 0.14285715 0
-0.109661296 -0.10948064 0 0.33333334 0
-0.054309446 0.006318152 0 1 0
-0.109661296 0.07314367 0 0.2857143 0
-0.042411387 0.018338539 0 0.47619048 0
0.07300159 0.07314367 0 0.42857143 0
0.006108448 0.018071033 0 0.5714286 0
0.017935157 0.0060684755 0 0.61904764 0
0.07300159 -0.10948064 0 0.3809524 0
-0.018329851 -0.0065226182 0 0.52380955 0
-0.0547554 -0.042191423 0 0.9047619 0
-0.030263595 -0.018168487 0 0.95238096 0
-0.0063782707 -0.018168487 0 0.6666667 0
0.018060029 -0.042690784 0 0.71428573 0
-0.04273247 -0.05408698 0 0.85714287 0
0.0060549304 -0.054515004 0 0.7619048 0
-0.018329851 -0.030402884 0 0.8095238 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 9 10 8
3 9 11 10
3 11 12 10
3 12 13 10
3 14 11 9
3 6 15 7
3 15 16 7
3 17 18 12
3 18 13 12
3 19 20 21
3 6 19 15
3 20 13 18
3 6 20 19
3 6 13 20

View File

@@ -0,0 +1,28 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 10
property float x
property float y
property float z
property float s
property float t
element face 6
property list uchar uint vertex_indices
end_header
-0.07297526 0.09135432 0 0.11111111 0
0.11032981 0.10968094 0 0.5555556 0
-0.07297526 0.10968094 0 0 0
0.09199931 0.09135432 0 0.22222222 0
0.11032981 -0.073585406 0 0.44444445 0
0.09199931 -0.073585406 0 0.33333334 0
-0.10963628 -0.11023868 0 0.7777778 0
0.07366879 0.07302768 0 1 0
-0.10963628 0.07302768 0 0.6666667 0
0.07366879 -0.11023868 0 0.8888889 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 6 9 7

View File

@@ -0,0 +1,174 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 83
property float x
property float y
property float z
property float s
property float t
element face 79
property list uchar uint vertex_indices
end_header
-0.07290316 0.09147241 0 0.0121951215 0
0.1099843 0.10975728 0 0.06097561 0
-0.07290316 0.10975728 0 0 0
0.091695555 0.09147241 0 0.024390243 0
0.1099843 -0.07309154 0 0.048780486 0
0.091695555 -0.07309154 0 0.036585364 0
-0.10948064 -0.1096613 0 0.085365854 0
-0.05822414 -0.00053750724 0 0.597561 0
-0.10948064 0.07318752 0 0.07317073 0
-0.055750687 0.004383467 0 0.6097561 0
-0.05268512 0.00891722 0 0.6219512 0
-0.04907864 0.013012551 0 0.63414633 0
-0.04498244 0.016618274 0 0.64634144 0
-0.040447734 0.019683175 0 0.6585366 0
-0.035525717 0.022156127 0 0.6707317 0
0.07340681 0.07318752 0 0.1097561 0
-0.030267581 0.023985885 0 0.68292683 0
-0.024724536 0.025121279 0 0.69512194 0
-0.01894778 0.025511123 0 0.12195122 0
-0.013171017 0.025121279 0 0.13414635 0
-0.0076279715 0.023985885 0 0.14634146 0
-0.002369836 0.022156127 0 0.15853658 0
0.0025521815 0.019683175 0 0.17073171 0
0.007086888 0.01661826 0 0.18292683 0
0.011183083 0.013012543 0 0.19512194 0
0.014789559 0.0089172125 0 0.20731707 0
0.01785513 0.0043834597 0 0.2195122 0
0.020328574 -0.0005375147 0 0.23170732 0
0.07340681 -0.1096613 0 0.09756097 0
-0.01676885 -0.05068185 0 0.7195122 0
-0.012085743 0.015836112 0 1 0
-0.016340211 0.016440101 0 0.70731705 0
-0.008017488 0.014717221 0 0.9878049 0
-0.0041704625 0.0131183565 0 0.9756098 0
-0.000579685 0.011074416 0 0.9634146 0
0.0027198046 0.008620292 0 0.9512195 0
0.005692996 0.0057908893 0 0.9390244 0
0.008304864 0.0026211068 0 0.9268293 0
0.010520384 -0.00085414946 0 0.91463417 0
-0.060054287 -0.0057945326 0 0.58536583 0
0.02215872 -0.0057945326 0 0.24390244 0
0.01230453 -0.0045999885 0 0.902439 0
0.013622284 -0.008581497 0 0.8902439 0
-0.061189923 -0.011336409 0 0.5731707 0
0.023294352 -0.011336409 0 0.25609756 0
0.014438622 -0.012763783 0 0.8780488 0
-0.061579846 -0.01711195 0 0.5609756 0
0.023684286 -0.01711195 0 0.2682927 0
0.01471851 -0.01711195 0 0.86585367 0
-0.06118993 -0.02288749 0 0.5487805 0
0.014434196 -0.021496154 0 0.85365856 0
0.023294352 -0.02288749 0 0.2804878 0
0.013605081 -0.025710896 0 0.8414634 0
-0.060054295 -0.02842936 0 0.5365854 0
0.02215872 -0.02842936 0 0.29268292 0
0.012267001 -0.02972044 0 0.8292683 0
-0.05822415 -0.033686385 0 0.5243902 0
0.020328574 -0.033686377 0 0.30487806 0
0.010455765 -0.033489108 0 0.81707317 0
0.008207209 -0.03698118 0 0.80487806 0
0.01785513 -0.03860736 0 0.31707317 0
-0.055750694 -0.038607366 0 0.5121951 0
0.005557157 -0.040160954 0 0.79268295 0
0.0147895515 -0.043141104 0 0.3292683 0
-0.052685127 -0.04314111 0 0.5 0
0.0025414154 -0.042992726 0 0.7804878 0
-0.0008041933 -0.045440786 0 0.76829267 0
0.011183076 -0.047236435 0 0.34146342 0
-0.049078647 -0.047236446 0 0.4878049 0
-0.004443839 -0.047469437 0 0.75609756 0
0.0070868805 -0.050842155 0 0.35365853 0
-0.04498245 -0.050842166 0 0.47560975 0
-0.008341715 -0.04904297 0 0.74390244 0
-0.01246199 -0.050125673 0 0.73170733 0
0.002552174 -0.053907074 0 0.36585367 0
-0.04044774 -0.053907085 0 0.46341464 0
-0.0023698434 -0.056380007 0 0.37804878 0
-0.035525724 -0.05638002 0 0.4512195 0
-0.007627979 -0.058209766 0 0.3902439 0
-0.030267589 -0.058209777 0 0.4390244 0
-0.013171025 -0.05934516 0 0.40243903 0
-0.024724536 -0.059345167 0 0.42682928 0
-0.01894778 -0.059735004 0 0.41463414 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 9 10 8
3 10 11 8
3 11 12 8
3 12 13 8
3 13 14 8
3 14 15 8
3 14 16 15
3 16 17 15
3 17 18 15
3 18 19 15
3 19 20 15
3 20 21 15
3 21 22 15
3 22 23 15
3 23 24 15
3 24 25 15
3 25 26 15
3 26 27 15
3 27 28 15
3 29 30 31
3 29 32 30
3 29 33 32
3 29 34 33
3 29 35 34
3 29 36 35
3 29 37 36
3 29 38 37
3 6 39 7
3 40 28 27
3 29 41 38
3 29 42 41
3 6 43 39
3 44 28 40
3 29 45 42
3 6 46 43
3 47 28 44
3 29 48 45
3 6 49 46
3 29 50 48
3 51 28 47
3 29 52 50
3 6 53 49
3 54 28 51
3 29 55 52
3 6 56 53
3 57 28 54
3 29 58 55
3 29 59 58
3 60 28 57
3 6 61 56
3 29 62 59
3 63 28 60
3 6 64 61
3 29 65 62
3 29 66 65
3 67 28 63
3 6 68 64
3 29 69 66
3 70 28 67
3 6 71 68
3 29 72 69
3 29 73 72
3 74 28 70
3 6 75 71
3 76 28 74
3 6 77 75
3 78 28 76
3 6 79 77
3 80 28 78
3 6 81 79
3 82 28 80
3 6 82 81
3 6 28 82

View File

@@ -0,0 +1,206 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 98
property float x
property float y
property float z
property float s
property float t
element face 96
property list uchar uint vertex_indices
end_header
-0.07283364 0.09149335 0 0.2 0
0.11040141 0.10981299 0 1 0
-0.07283364 0.10981299 0 0 0
0.092077896 0.09149335 0 0.4 0
0.11040141 -0.07338336 0 0.8 0
0.092077896 -0.07338336 0 0.6 0
-0.023650885 0.023889855 0 0.012048192 0
-0.012075409 0.02388984 0 0.56626505 0
-0.017863132 0.024280444 0 0 0
-0.02920451 0.022752255 0 0.024096385 0
-0.0065217763 0.02275224 0 0.55421686 0
-0.03447271 0.02091895 0 0.036144577 0
-0.0012535825 0.020918936 0 0.5421687 0
-0.039404176 0.018441245 0 0.04819277 0
0.0036778823 0.01844123 0 0.5301205 0
-0.0439476 0.015370399 0 0.060240965 0
0.008221306 0.015370384 0 0.5180723 0
-0.04805168 0.011757717 0 0.072289154 0
-0.015240908 0.015183553 0 0.57831323 0
0.012325391 0.011757709 0 0.5060241 0
-0.01524961 0.01386039 0 1 0
-0.010978632 0.014578551 0 0.5903614 0
-0.00690341 0.013457961 0 0.60240966 0
-0.015273668 0.010202244 0 0.9879518 0
-0.0030502453 0.011856705 0 0.61445785 0
0.00054587424 0.00980968 0 0.62650603 0
-0.05166512 0.007654503 0 0.084337346 0
0.015938833 0.0076544955 0 0.4939759 0
-0.015310019 0.004676111 0 0.97590363 0
0.0038499683 0.007351801 0 0.6385542 0
-0.054736618 0.0031120405 0 0.09638554 0
0.01901032 0.003112033 0 0.48192772 0
0.0068270415 0.004517995 0 0.6506024 0
-0.01535558 -0.002251014 0 0.96385545 0
0.009442098 0.0013431534 0 0.6626506 0
-0.05721486 -0.0018183812 0 0.10843374 0
0.021488577 -0.0018183887 0 0.4698795 0
0.011660151 -0.0021378025 0 0.67469877 0
-0.059048552 -0.0070854574 0 0.12048193 0
0.02332227 -0.0070854723 0 0.45783132 0
0.013446212 -0.005889952 0 0.686747 0
-0.015407287 -0.010112137 0 0.9518072 0
0.014765292 -0.009878382 0 0.6987952 0
-0.06018639 -0.012637913 0 0.13253012 0
0.024460107 -0.012637928 0 0.44578314 0
0.015582398 -0.014068201 0 0.7108434 0
-0.015462056 -0.018440254 0 0.939759 0
-0.060577072 -0.018424459 0 0.14457831 0
0.0248508 -0.018424459 0 0.43373495 0
0.01586257 -0.018424459 0 0.72289157 0
-0.06018639 -0.024210997 0 0.15662651 0
0.015577719 -0.02281712 0 0.73493975 0
0.024460122 -0.024210997 0 0.42168674 0
-0.0155168325 -0.026768379 0 0.92771083 0
0.014747098 -0.027040191 0 0.74698794 0
-0.059048552 -0.029763453 0 0.16867469 0
0.023322284 -0.029763453 0 0.40963855 0
-0.0155685395 -0.0346295 0 0.91566265 0
0.01340659 -0.031057857 0 0.7590361 0
-0.05721486 -0.035030536 0 0.18072289 0
0.021488592 -0.035030536 0 0.39759037 0
0.011592075 -0.034834288 0 0.7710843 0
-0.0156141 -0.04155662 0 0.90361446 0
0.009339415 -0.03833369 0 0.78313255 0
-0.054736618 -0.039960958 0 0.19277108 0
0.01901035 -0.039960958 0 0.38554215 0
0.006684497 -0.041520238 0 0.79518074 0
-0.05166512 -0.04450342 0 0.20481928 0
0.015938848 -0.04450342 0 0.37349397 0
0.0036632046 -0.044358127 0 0.8072289 0
-0.015650444 -0.04708276 0 0.8915663 0
0.00031141192 -0.04681153 0 0.8192771 0
-0.04805168 -0.048606638 0 0.21686748 0
0.0123254135 -0.048606638 0 0.36144578 0
-0.0033350065 -0.04884464 0 0.8313253 0
-0.015674502 -0.0507409 0 0.8795181 0
-0.0439476 -0.052219316 0 0.22891566 0
0.008221328 -0.052219316 0 0.3493976 0
-0.0072401613 -0.050421644 0 0.8433735 0
-0.011368185 -0.05150672 0 0.85542166 0
-0.015683204 -0.05206406 0 0.8674699 0
-0.039404176 -0.055290163 0 0.24096386 0
0.0036779046 -0.055290163 0 0.33734939 0
-0.03447271 -0.057767883 0 0.25301206 0
-0.0012535602 -0.057767883 0 0.3253012 0
-0.02920451 -0.05960119 0 0.26506025 0
-0.006521754 -0.05960119 0 0.31325302 0
-0.023650885 -0.060738787 0 0.27710843 0
-0.0120753795 -0.060738787 0 0.30120483 0
-0.017863132 -0.061129384 0 0.28915662 0
-0.10948065 -0.110022634 0 0.14285715 0
-0.091157146 0.05485408 0 0.5714286 0
-0.10948065 0.07317372 0 0 0
0.0737544 0.07317372 0 0.42857143 0
0.05543089 0.05485408 0 0.71428573 0
0.0737544 -0.110022634 0 0.2857143 0
-0.091157146 -0.091703 0 1 0
0.05543089 -0.091703 0 0.85714287 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 9 7 6
3 9 10 7
3 11 10 9
3 11 12 10
3 13 12 11
3 13 14 12
3 15 14 13
3 15 16 14
3 17 18 15
3 18 16 15
3 18 19 16
3 17 20 18
3 21 19 18
3 22 19 21
3 17 23 20
3 24 19 22
3 25 19 24
3 26 23 17
3 25 27 19
3 26 28 23
3 29 27 25
3 30 28 26
3 29 31 27
3 32 31 29
3 30 33 28
3 34 31 32
3 35 33 30
3 34 36 31
3 37 36 34
3 38 33 35
3 37 39 36
3 40 39 37
3 38 41 33
3 42 39 40
3 43 41 38
3 42 44 39
3 45 44 42
3 43 46 41
3 47 46 43
3 45 48 44
3 49 48 45
3 50 46 47
3 51 48 49
3 51 52 48
3 50 53 46
3 54 52 51
3 55 53 50
3 54 56 52
3 55 57 53
3 58 56 54
3 59 57 55
3 58 60 56
3 61 60 58
3 59 62 57
3 63 60 61
3 64 62 59
3 63 65 60
3 66 65 63
3 67 62 64
3 66 68 65
3 69 68 66
3 67 70 62
3 71 68 69
3 72 70 67
3 71 73 68
3 74 73 71
3 72 75 70
3 76 75 72
3 74 77 73
3 78 77 74
3 79 77 78
3 76 80 75
3 80 77 79
3 76 77 80
3 81 77 76
3 81 82 77
3 83 82 81
3 83 84 82
3 85 84 83
3 85 86 84
3 87 86 85
3 87 88 86
3 89 88 87
3 90 91 92
3 91 93 92
3 91 94 93
3 94 95 93
3 90 96 91
3 97 95 94
3 90 97 96
3 90 95 97

View File

@@ -0,0 +1,44 @@
ply
format ascii 1.0
comment Created in Blender version 4.2.2 LTS
element vertex 18
property float x
property float y
property float z
property float s
property float t
element face 14
property list uchar uint vertex_indices
end_header
-0.073069215 0.09155264 0 0.7058824 0
0.10989119 0.10984481 0 0.47058824 0
-0.073069215 0.10984481 0 0.7647059 0
0.09159514 0.09155264 0 0.64705884 0
0.10989119 -0.07307695 0 0.5294118 0
0.09159514 -0.07307695 0 0.5882353 0
-0.109661296 -0.1096613 0 0.4117647 0
-0.091365255 0.05496829 0 0 0
-0.109661296 0.073260464 0 0.23529412 0
0.07329911 0.073260464 0 0.29411766 0
0.055003062 0.05496829 0 0.1764706 0
0.07329911 -0.1096613 0 0.3529412 0
-0.091365255 -0.09136913 0 0.05882353 0
0.055003062 -0.09136913 0 0.11764706 0
-0.054773174 -0.027346507 0 1 0
0.01841098 -0.009054333 0 0.88235295 0
-0.054773174 -0.009054333 0 0.8235294 0
0.01841098 -0.027346507 0 0.9411765 0
3 0 1 2
3 0 3 1
3 3 4 1
3 5 4 3
3 6 7 8
3 7 9 8
3 7 10 9
3 10 11 9
3 6 12 7
3 13 11 10
3 14 15 16
3 14 17 15
3 6 13 12
3 6 11 13

View File

@@ -543,22 +543,14 @@ Symbol::Symbol(Type t, glm::vec3 pos) : Node(), type_(t)
shadows[RECEIVE]= shadow;
icons[TEXT] = new Mesh("mesh/icon_text.ply");
shadows[TEXT] = shadow;
icons[DOTS] = new Mesh("mesh/icon_dots.ply");
shadows[DOTS] = nullptr;
icons[BUSY] = new Mesh("mesh/icon_circles.ply");
shadows[BUSY] = nullptr;
icons[LOCK] = new Mesh("mesh/icon_lock.ply");
shadows[LOCK] = shadow;
icons[UNLOCK] = new Mesh("mesh/icon_unlock.ply");
shadows[UNLOCK] = shadow;
icons[EYE] = new Mesh("mesh/icon_eye.ply");
shadows[EYE] = shadow;
icons[EYESLASH] = new Mesh("mesh/icon_eye_slash.ply");
shadows[EYESLASH] = shadow;
icons[TELEVISION] = new Mesh("mesh/icon_tv.ply");
shadows[TELEVISION] = shadow;
icons[ARROWS] = new Mesh("mesh/icon_rightarrow.ply");
shadows[ARROWS] = shadow;
icons[ROTATION] = new Mesh("mesh/border_handles_rotation.ply");
shadows[ROTATION] = shadow;
icons[CIRCLE] = new Mesh("mesh/icon_circle.ply");
@@ -577,6 +569,22 @@ Symbol::Symbol(Type t, glm::vec3 pos) : Node(), type_(t)
shadows[PLAY] = shadow;
icons[FFWRD] = new Mesh("mesh/icon_fastforward.ply");
shadows[FFWRD] = shadow;
icons[BLEND_NORMAL] = new Mesh("mesh/icon_blend_normal.ply");
shadows[BLEND_NORMAL] = nullptr;
icons[BLEND_SCREEN] = new Mesh("mesh/icon_blend_add.ply");
shadows[BLEND_SCREEN] = nullptr;
icons[BLEND_SUBTRACT] = new Mesh("mesh/icon_blend_subtract.ply");
shadows[BLEND_SUBTRACT]= nullptr;
icons[BLEND_MULT] = new Mesh("mesh/icon_blend_mult.ply");
shadows[BLEND_MULT]= nullptr;
icons[BLEND_H_LIGHT] = new Mesh("mesh/icon_blend_hard_light.ply");
shadows[BLEND_H_LIGHT]= nullptr;
icons[BLEND_S_LIGHT] = new Mesh("mesh/icon_blend_soft_light.ply");
shadows[BLEND_S_LIGHT]= nullptr;
icons[BLEND_S_SUB] = new Mesh("mesh/icon_blend_soft_sub.ply");
shadows[BLEND_S_SUB]= nullptr;
icons[BLEND_LIGHTEN] = new Mesh("mesh/icon_blend_lighten.ply");
shadows[BLEND_LIGHTEN]= nullptr;
icons[EMPTY] = new Mesh("mesh/icon_empty.ply");
shadows[EMPTY] = shadow;
}

View File

@@ -96,14 +96,10 @@ public:
SHARE,
RECEIVE,
TEXT,
DOTS,
BUSY,
LOCK,
UNLOCK,
EYE,
EYESLASH,
TELEVISION,
ARROWS,
ROTATION,
CROP,
CIRCLE,
@@ -114,6 +110,14 @@ public:
CROSS,
PLAY,
FFWRD,
BLEND_NORMAL,
BLEND_SCREEN,
BLEND_SUBTRACT,
BLEND_MULT,
BLEND_H_LIGHT,
BLEND_S_LIGHT,
BLEND_S_SUB,
BLEND_LIGHTEN,
EMPTY
} Type;
Symbol(Type t, glm::vec3 pos = glm::vec3(0.f));

View File

@@ -576,17 +576,19 @@ bool ImGuiToolkit::ComboIcon (const char* label, int* current_item,
char text_buf[256];
ImFormatString(text_buf, IM_ARRAYSIZE(text_buf), " %s", std::get<2>( items.at(*current_item) ).c_str());
if ( ImGui::BeginCombo( label, text_buf, ImGuiComboFlags_None) ) {
for (int p = 0; p < (int) items.size(); ++p){
ImGui::PushID((void*)(intptr_t)p);
if (ImGuiToolkit::SelectableIcon( std::get<0>( items.at(p) ),
std::get<1>( items.at(p) ),
std::get<2>( items.at(p) ).c_str(),
p == *current_item) ) {
*current_item = p;
for (auto item = items.cbegin(); item != items.cend(); ++item) {
int index = item - items.cbegin();
ImGui::PushID((void*)(intptr_t)index);
if (ImGuiToolkit::SelectableIcon(std::get<0>(*item),
std::get<1>(*item ),
std::get<2>(*item).c_str(),
index == *current_item) ) {
*current_item = index;
ret = true;
}
if (ImGui::IsItemHovered() && p < (int) tooltips.size() )
ImGuiToolkit::ToolTip( tooltips.at(p).c_str() );
if (ImGui::IsItemHovered() && index < (int) tooltips.size() )
ImGuiToolkit::ToolTip( tooltips.at(index).c_str() );
ImGui::PopID();
}
ImGui::EndCombo();

View File

@@ -197,40 +197,11 @@ void ImGuiVisitor::visit(Shader &n)
// ImGui::SameLine(0, 5);
ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN);
int mode = n.blending;
if (ImGui::Combo("Blending", &mode, "Normal\0Screen\0Subtract\0Multiply\0Soft light"
"\0Hard light\0Soft subtract\0Lighten only\0") ) {
ImGui::SetNextItemWidth(IMGUI_RIGHT_ALIGN);
if (ImGuiToolkit::ComboIcon("Blending", &mode, Shader::blendingFunction) )
{
n.blending = Shader::BlendMode(mode);
oss << "Blending ";
switch(n.blending) {
case Shader::BLEND_OPACITY:
oss<<"Normal";
break;
case Shader::BLEND_SCREEN:
oss<<"Screen";
break;
case Shader::BLEND_SUBTRACT:
oss<<"Subtract";
break;
case Shader::BLEND_MULTIPLY:
oss<<"Multiply";
break;
case Shader::BLEND_HARD_LIGHT:
oss<<"Hard light";
break;
case Shader::BLEND_SOFT_LIGHT:
oss<<"Soft light";
break;
case Shader::BLEND_SOFT_SUBTRACT:
oss<<"Soft subtract";
break;
case Shader::BLEND_LIGHTEN_ONLY:
oss<<"Lighten only";
break;
case Shader::BLEND_NONE:
oss<<"None";
break;
}
oss << "Blending " << std::get<2>(Shader::blendingFunction[mode]).c_str();
Action::manager().store(oss.str());
}
@@ -440,7 +411,10 @@ void ImGuiVisitor::visit (Source& s)
oss << s.name() << ": ";
// blending selection
Shader::BlendMode prevblend = s.blendingShader()->blending;
s.blendingShader()->accept(*this);
if (s.blendingShader()->blending != prevblend)
s.touch();
// Draw different info if failed or succeed
if ( !s.failed() ) {

View File

@@ -96,7 +96,34 @@ void LayerView::draw()
// initialize the verification of the selection
static bool candidate_flatten_group = false;
// display popup menu
// display popup menu source
if (show_context_menu_ == MENU_SOURCE) {
ImGui::OpenPopup("LayerSourceContextMenu");
show_context_menu_ = MENU_NONE;
}
if (ImGui::BeginPopup("LayerSourceContextMenu")) {
// work on the current source
Source *s = Mixer::manager().currentSource();
if (s != nullptr) {
for (auto bmode = Shader::blendingFunction.cbegin();
bmode != Shader::blendingFunction.cend();
++bmode) {
int index = bmode - Shader::blendingFunction.cbegin();
if (ImGuiToolkit::MenuItemIcon(std::get<0>(*bmode),
std::get<1>(*bmode),
std::get<2>(*bmode).c_str(),
nullptr,
s->blendingShader()->blending == index)) {
s->blendingShader()->blending = Shader::BlendMode(index);
s->touch();
Action::manager().store(s->name() + ": Blending " + std::get<2>(*bmode));
}
}
}
ImGui::EndPopup();
}
// display popup menu selection
if (show_context_menu_ == MENU_SELECTION) {
// initialize the verification of the selection
@@ -273,6 +300,10 @@ std::pair<Node *, glm::vec2> LayerView::pick(glm::vec2 P)
else if ( pick.first == s->initial_0_ || pick.first == s->initial_1_ ) {
UserInterface::manager().setSourceInPanel(s);
}
// pick blending icon
else if (pick.first == s->blendmode_->activeChild()) {
openContextMenu(MENU_SOURCE);
}
}
else
pick = { nullptr, glm::vec2(0.f) };

View File

@@ -266,9 +266,9 @@ SessionFileSource::SessionFileSource(uint64_t id) : SessionSource(id), path_("")
overlays_[View::TRANSITION]->translation_.z = 0.1;
overlays_[View::TRANSITION]->visible_ = false;
Symbol *loader = new Symbol(Symbol::DOTS);
loader->scale_ = glm::vec3(2.f, 2.f, 1.f);
loader->translation_.y = -0.8;
Symbol *loader = new Symbol(Symbol::BUSY);
loader->scale_ = glm::vec3(1.7f, 1.7f, 1.f);
loader->translation_.y = -0.7;
loader->update_callbacks_.push_back(new InfiniteGlowCallback);
overlays_[View::TRANSITION]->attach(loader);

View File

@@ -320,6 +320,16 @@ bool ShadingProgram::setUniform<glm::mat4>(const std::string& name, glm::mat4 va
bool Shader::force_blending_opacity = false;
std::vector< std::tuple<int, int, std::string> > Shader::blendingFunction = {
{5, 6, "Normal"},
{7, 6, "Screen"},
{8, 6, "Subtract"},
{9, 6, "Multiply"},
{2, 6, "Hard light"},
{3, 6, "Soft light"},
{6, 6, "Soft subtract"},
{10, 6, "Lighten only"}
};
Shader::Shader() : blending(BLEND_OPACITY)
{

View File

@@ -73,7 +73,7 @@ public:
BLEND_NONE
} BlendMode;
BlendMode blending;
static std::vector< std::tuple<int, int, std::string> > blendingFunction;
static bool force_blending_opacity;
protected:

View File

@@ -301,6 +301,19 @@ Source::Source(uint64_t id) : SourceCore(), id_(id), ready_(false), symbol_(null
overlays_[View::LAYER]->visible_ = false;
groups_[View::LAYER]->attach(overlays_[View::LAYER]);
// blending change icon
blendmode_ = new Switch;
blendmode_->translation_ = glm::vec3(0.0f, 1.2f, 0.1f);
blendmode_->scale_ = glm::vec3(1.2f, 1.2f, 1.f);
groups_[View::LAYER]->attach(blendmode_);
for (uint B = Symbol::BLEND_NORMAL; B < Symbol::EMPTY; ++B) {
Symbol *blend_icon = new Symbol( (Symbol::Type) B);
blend_icon->color = glm::vec4(COLOR_HIGHLIGHT_SOURCE, 0.6f);
blend_icon->translation_.z = 0.1;
blendmode_->attach(blend_icon);
}
blendmode_->setActive(0);
// default appearance node
frames_[View::TEXTURE] = new Switch;
frame = new Frame(Frame::SHARP, Frame::THIN, Frame::NONE); // visible
@@ -469,9 +482,9 @@ void Source::setMode(Source::Mode m)
for (auto o = overlays_.begin(); o != overlays_.end(); ++o)
(*o).second->visible_ = (current && !locked_);
// the opacity of the initials changes if current
initial_0_->color.w = current ? 1.0 : 0.7;
initial_1_->color.w = current ? 1.0 : 0.7;
// the opacity of the initials and of blending icon change if current
initial_0_->color.w = initial_1_->color.w = current ? 1.0 : 0.7;
static_cast<Symbol *>(blendmode_->activeChild())->color.w = current ? 1.0 : 0.6;
// the lock icon
locker_->setActive( locked_ ? 0 : 1);
@@ -609,21 +622,24 @@ void Source::attach(FrameBuffer *renderbuffer)
}
float AR = renderbuffer_->aspectRatio();
// if a symbol is available
if (symbol_)
// hack to place the symbols in the corner independently of aspect ratio
symbol_->translation_.x = (renderbuffer_->aspectRatio() - 0.3f) / renderbuffer_->aspectRatio();
symbol_->translation_.x = (AR - 0.3f) / AR;
// hack to place the initials in the corner independently of aspect ratio
initial_0_->translation_.x = 0.2f - renderbuffer_->aspectRatio();
initial_1_->translation_.x = 0.4f - renderbuffer_->aspectRatio();
initial_0_->translation_.x = 0.2f - AR;
initial_1_->translation_.x = 0.4f - AR;
blendmode_->translation_.x = - 0.2f - AR ;
// scale all icon nodes to match aspect ratio
for (int v = View::MIXING; v <= View::TRANSITION; v++) {
NodeSet::iterator node;
for (node = groups_[(View::Mode) v]->begin();
node != groups_[(View::Mode) v]->end(); ++node) {
(*node)->scale_.x = renderbuffer_->aspectRatio();
(*node)->scale_.x = AR;
}
}
@@ -879,6 +895,11 @@ void Source::update(float dt)
groups_[View::LAYER]->translation_.x = -groups_[View::LAYER]->translation_.z;
groups_[View::LAYER]->translation_.y = groups_[View::LAYER]->translation_.x / LAYER_PERSPECTIVE;
// update blending icon
static_cast<Symbol *>(blendmode_->activeChild())->color.w = 0.6;
blendmode_->setActive((int) blendingshader_->blending);
static_cast<Symbol *>(blendmode_->activeChild())->color.w = mode_ >= Source::CURRENT ? 1.0 : 0.6;
// Update workspace based on depth, and
// adjust vertical position of icon depending on workspace
if (groups_[View::LAYER]->translation_.x < -LAYER_FOREGROUND) {

View File

@@ -364,7 +364,7 @@ protected:
std::map<View::Mode, Switch*> frames_;
std::map<View::Mode, Handles*[15]> handles_;
Handles *lock_, *unlock_;
Switch *locker_, *manipulator_;
Switch *locker_, *manipulator_, *blendmode_;
Symbol *symbol_;
Character *initial_0_, *initial_1_;