Skip to content

Commit c17559b

Browse files
committed
impl: Optimize selection_code_update() for very large selections
1 parent 56d5139 commit c17559b

1 file changed

Lines changed: 23 additions & 13 deletions

File tree

scripts/selection_code_update/selection_code_update.gml

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,47 @@ function selection_code_update() {
22
// selection_code_update()
33
// Updates the selection code
44
var a, b, ca, cb;
5-
5+
66
if (selected = 0) return 0
77
ca = 0
8+
9+
var _selection_l = selection_l
10+
var _selection_h = selection_h
11+
var _selection_colfirst = selection_colfirst
12+
var _selection_exists = selection_exists
13+
var _selection_ins = selection_ins
14+
var _selection_key = selection_key
15+
var _selection_vel = selection_vel
16+
var _selection_pan = selection_pan
17+
var _selection_pit = selection_pit
18+
19+
820
var str_buffer = buffer_create(16, buffer_grow, 1);
9-
for (a = 0; a < selection_l; a += 1) {
10-
if (selection_colfirst[a] > -1) {
21+
for (a = 0; a < _selection_l; a += 1) {
22+
if (_selection_colfirst[a] > -1) {
1123
buffer_write(str_buffer, buffer_text, string(ca))
1224
buffer_write(str_buffer, buffer_text, "|")
1325
ca = 0
1426
cb = 0
15-
for (b = 0; b < selection_h; b += 1) {
16-
if (selection_exists[a, b]) {
27+
for (b = 0; b < _selection_h; b += 1) {
28+
if (_selection_exists[a, b]) {
1729
buffer_write(str_buffer, buffer_text, string(cb))
1830
buffer_write(str_buffer, buffer_text, "|")
1931
cb = 0
20-
buffer_write(str_buffer, buffer_text, string(ds_list_find_index(instrument_list, selection_ins[a, b])))
32+
buffer_write(str_buffer, buffer_text, string(ds_list_find_index(instrument_list, _selection_ins[a, b])))
2133
buffer_write(str_buffer, buffer_text, "|")
22-
buffer_write(str_buffer, buffer_text, string(selection_key[a, b]))
34+
buffer_write(str_buffer, buffer_text, string(_selection_key[a, b]))
2335
buffer_write(str_buffer, buffer_text, "|")
24-
buffer_write(str_buffer, buffer_text, string(selection_vel[a, b]))
36+
buffer_write(str_buffer, buffer_text, string(_selection_vel[a, b]))
2537
buffer_write(str_buffer, buffer_text, "|")
26-
buffer_write(str_buffer, buffer_text, string(selection_pan[a, b]))
38+
buffer_write(str_buffer, buffer_text, string(_selection_pan[a, b]))
2739
buffer_write(str_buffer, buffer_text, "|")
28-
buffer_write(str_buffer, buffer_text, string(selection_pit[a, b]))
40+
buffer_write(str_buffer, buffer_text, string(_selection_pit[a, b]))
2941
buffer_write(str_buffer, buffer_text, "|")
3042
}
3143
cb += 1
32-
if (b = selection_h - 1) {
33-
buffer_write(str_buffer, buffer_text, "-1|")
34-
}
3544
}
45+
buffer_write(str_buffer, buffer_text, "-1|")
3646
}
3747
ca += 1
3848
}

0 commit comments

Comments
 (0)