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 }