Mercurial > hg > forks > multipaint-js
comparison buffers.pde @ 193:7a9dc175ece5
Use dst = src.slice(0) instead of Processing arrayCopy(src, dst) for cloning arrays. Should be faster, but if not, this can be reverted later.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Thu, 23 Aug 2018 18:01:16 +0300 |
parents | 72ae62f2036b |
children |
comparison
equal
deleted
inserted
replaced
192:0dec83e42d90 | 193:7a9dc175ece5 |
---|---|
21 | 21 |
22 | 22 |
23 void store_undo() | 23 void store_undo() |
24 { | 24 { |
25 if (g_spare) | 25 if (g_spare) |
26 arrayCopy(g_map, g_undobs[g_uindex[g_spare]]); | 26 g_undobs[g_uindex[g_spare]] = g_map.slice(0); |
27 else | 27 else |
28 arrayCopy(g_map, g_undob[g_uindex[g_spare]]); | 28 g_undob[g_uindex[g_spare]] = g_map.slice(0); |
29 | 29 |
30 g_uindex[g_spare]++; | 30 g_uindex[g_spare]++; |
31 if (g_uindex[g_spare] > UNDOSTEPS) | 31 if (g_uindex[g_spare] > UNDOSTEPS) |
32 g_uindex[g_spare] = 0; | 32 g_uindex[g_spare] = 0; |
33 | 33 |
48 { | 48 { |
49 if (g_uindex[g_spare] == g_ubottom[g_spare]) | 49 if (g_uindex[g_spare] == g_ubottom[g_spare]) |
50 return; | 50 return; |
51 | 51 |
52 if (g_spare) | 52 if (g_spare) |
53 arrayCopy(g_map, g_undobs[g_uindex[g_spare]]); | 53 g_undobs[g_uindex[g_spare]] = g_map.slice(0); |
54 else | 54 else |
55 arrayCopy(g_map, g_undob[g_uindex[g_spare]]); | 55 g_undob[g_uindex[g_spare]] = g_map.slice(0); |
56 | 56 |
57 g_uindex[g_spare]--; | 57 g_uindex[g_spare]--; |
58 if (g_uindex[g_spare] < 0) | 58 if (g_uindex[g_spare] < 0) |
59 g_uindex[g_spare] = UNDOSTEPS; | 59 g_uindex[g_spare] = UNDOSTEPS; |
60 | 60 |
61 if (g_spare) | 61 if (g_spare) |
62 arrayCopy(g_undobs[g_uindex[g_spare]], g_map); | 62 g_map = g_undobs[g_uindex[g_spare]].slice(0); |
63 else | 63 else |
64 arrayCopy(g_undob[g_uindex[g_spare]], g_map); | 64 g_map = g_undob[g_uindex[g_spare]].slice(0); |
65 | 65 |
66 refreshpalette(); | 66 refreshpalette(); |
67 ustats(); | 67 ustats(); |
68 } | 68 } |
69 | 69 |
76 g_uindex[g_spare]++; | 76 g_uindex[g_spare]++; |
77 if (g_uindex[g_spare] > UNDOSTEPS) | 77 if (g_uindex[g_spare] > UNDOSTEPS) |
78 g_uindex[g_spare] = 0; | 78 g_uindex[g_spare] = 0; |
79 | 79 |
80 if (g_spare) | 80 if (g_spare) |
81 arrayCopy(g_undobs[g_uindex[g_spare]], g_map); | 81 g_map = g_undobs[g_uindex[g_spare]].slice(0); |
82 else | 82 else |
83 arrayCopy(g_undob[g_uindex[g_spare]], g_map); | 83 g_map = g_undob[g_uindex[g_spare]].slice(0); |
84 | 84 |
85 refreshpalette(); | 85 refreshpalette(); |
86 ustats(); | 86 ustats(); |
87 } | 87 } |
88 | 88 |
89 | 89 |
90 void spare() //dpaint style spare page | 90 void spare() //dpaint style spare page |
91 { | 91 { |
92 arrayCopy(g_sparepage, g_swappage); | 92 g_swappage = g_sparepage.slice(0); |
93 arrayCopy(g_map, g_sparepage); | 93 g_sparepage = g_map.slice(0); |
94 arrayCopy(g_swappage, g_map); | 94 g_map = g_swappage.slice(0); |
95 | 95 |
96 mpSetTitle(g_spare ? sfilename : filename); | 96 mpSetTitle(g_spare ? sfilename : filename); |
97 | 97 |
98 g_spare = 1 - g_spare; | 98 g_spare = 1 - g_spare; |
99 g_realfront = byte(g_farge); | 99 g_realfront = byte(g_farge); |
108 // needed for brush copy and pre-drawing the shapes when a | 108 // needed for brush copy and pre-drawing the shapes when a |
109 // tool is active etc. | 109 // tool is active etc. |
110 switch (mode) | 110 switch (mode) |
111 { | 111 { |
112 case 0: | 112 case 0: |
113 arrayCopy(g_map, g_rmap); | 113 g_rmap = g_map.slice(0); |
114 break; | 114 break; |
115 case 1: | 115 case 1: |
116 arrayCopy(g_rmap, g_map); | 116 g_map = g_rmap.slice(0); |
117 for (int i = 0; i < 1024; i++) | 117 for (int i = 0; i < 1024; i++) |
118 { | 118 { |
119 if (g_remdo[i] == 1) | 119 if (g_remdo[i] == 1) |
120 { | 120 { |
121 g_remdo[i] = 0; | 121 g_remdo[i] = 0; |
122 g_redo[i] = 0; | 122 g_redo[i] = 0; |
123 } | 123 } |
124 } | 124 } |
125 break; | 125 break; |
126 case 2: | 126 case 2: |
127 arrayCopy(g_map, g_brush); | 127 g_brush = g_map.slice(0); |
128 break; | 128 break; |
129 case 3: | 129 case 3: |
130 arrayCopy(g_map, g_sparepage); | 130 g_sparepage = g_map.slice(0); |
131 break; | 131 break; |
132 case 4: | 132 case 4: |
133 arrayCopy(g_sparepage, g_mapm); | 133 g_mapm = g_sparepage.slice(0); |
134 break; | 134 break; |
135 } | 135 } |
136 } | 136 } |