diff --git a/CMakeLists.txt b/CMakeLists.txt index 02ce650..13f4ab5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 diff --git a/rsc/images/icons.dds b/rsc/images/icons.dds index 098aad7..3f03115 100644 Binary files a/rsc/images/icons.dds and b/rsc/images/icons.dds differ diff --git a/rsc/mesh/icon_blend_add.ply b/rsc/mesh/icon_blend_add.ply new file mode 100644 index 0000000..c914f7e --- /dev/null +++ b/rsc/mesh/icon_blend_add.ply @@ -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 diff --git a/rsc/mesh/icon_blend_hard_light.ply b/rsc/mesh/icon_blend_hard_light.ply new file mode 100644 index 0000000..2c59108 --- /dev/null +++ b/rsc/mesh/icon_blend_hard_light.ply @@ -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 diff --git a/rsc/mesh/icon_blend_lighten.ply b/rsc/mesh/icon_blend_lighten.ply new file mode 100644 index 0000000..c8de399 --- /dev/null +++ b/rsc/mesh/icon_blend_lighten.ply @@ -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 diff --git a/rsc/mesh/icon_blend_mult.ply b/rsc/mesh/icon_blend_mult.ply new file mode 100644 index 0000000..4f7bce9 --- /dev/null +++ b/rsc/mesh/icon_blend_mult.ply @@ -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 diff --git a/rsc/mesh/icon_blend_normal.ply b/rsc/mesh/icon_blend_normal.ply new file mode 100644 index 0000000..037bcfb --- /dev/null +++ b/rsc/mesh/icon_blend_normal.ply @@ -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 diff --git a/rsc/mesh/icon_blend_soft_light.ply b/rsc/mesh/icon_blend_soft_light.ply new file mode 100644 index 0000000..4e547b5 --- /dev/null +++ b/rsc/mesh/icon_blend_soft_light.ply @@ -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 diff --git a/rsc/mesh/icon_blend_soft_sub.ply b/rsc/mesh/icon_blend_soft_sub.ply new file mode 100644 index 0000000..c2536dc --- /dev/null +++ b/rsc/mesh/icon_blend_soft_sub.ply @@ -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 diff --git a/rsc/mesh/icon_blend_subtract.ply b/rsc/mesh/icon_blend_subtract.ply new file mode 100644 index 0000000..19d5fbc --- /dev/null +++ b/rsc/mesh/icon_blend_subtract.ply @@ -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 diff --git a/src/Decorations.cpp b/src/Decorations.cpp index 0807e55..99773b4 100644 --- a/src/Decorations.cpp +++ b/src/Decorations.cpp @@ -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; } diff --git a/src/Decorations.h b/src/Decorations.h index 1485285..9b0db96 100644 --- a/src/Decorations.h +++ b/src/Decorations.h @@ -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)); diff --git a/src/ImGuiToolkit.cpp b/src/ImGuiToolkit.cpp index 0ef7c78..e0e5ba5 100644 --- a/src/ImGuiToolkit.cpp +++ b/src/ImGuiToolkit.cpp @@ -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(); diff --git a/src/ImGuiVisitor.cpp b/src/ImGuiVisitor.cpp index 6ba4c65..e2bcb53 100644 --- a/src/ImGuiVisitor.cpp +++ b/src/ImGuiVisitor.cpp @@ -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() ) { diff --git a/src/LayerView.cpp b/src/LayerView.cpp index 3b77257..477bf47 100644 --- a/src/LayerView.cpp +++ b/src/LayerView.cpp @@ -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 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) }; diff --git a/src/SessionSource.cpp b/src/SessionSource.cpp index 805258d..c752823 100644 --- a/src/SessionSource.cpp +++ b/src/SessionSource.cpp @@ -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); diff --git a/src/Shader.cpp b/src/Shader.cpp index f3d0204..0b16acb 100644 --- a/src/Shader.cpp +++ b/src/Shader.cpp @@ -320,6 +320,16 @@ bool ShadingProgram::setUniform(const std::string& name, glm::mat4 va bool Shader::force_blending_opacity = false; +std::vector< std::tuple > 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) { diff --git a/src/Shader.h b/src/Shader.h index 813483c..2771721 100644 --- a/src/Shader.h +++ b/src/Shader.h @@ -73,7 +73,7 @@ public: BLEND_NONE } BlendMode; BlendMode blending; - + static std::vector< std::tuple > blendingFunction; static bool force_blending_opacity; protected: diff --git a/src/Source.cpp b/src/Source.cpp index 1e952c8..2b60d4d 100644 --- a/src/Source.cpp +++ b/src/Source.cpp @@ -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(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(blendmode_->activeChild())->color.w = 0.6; + blendmode_->setActive((int) blendingshader_->blending); + static_cast(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) { diff --git a/src/Source.h b/src/Source.h index 84f9c41..a48b096 100644 --- a/src/Source.h +++ b/src/Source.h @@ -364,7 +364,7 @@ protected: std::map frames_; std::map handles_; Handles *lock_, *unlock_; - Switch *locker_, *manipulator_; + Switch *locker_, *manipulator_, *blendmode_; Symbol *symbol_; Character *initial_0_, *initial_1_;