diff options
| author | Juan Linietsky | 2017-11-25 00:07:54 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2017-11-25 00:09:40 -0300 |
| commit | bc2e8d99e5ae0dbd69e712cc71da3033f5f30139 (patch) | |
| tree | d836011e3d5873e3ceea328ea3100f3c7719ab99 /servers/audio | |
| parent | 7dfba3cda9f13427f9f10a6eefbec52aef62274c (diff) | |
| download | godot-bc2e8d99.tar.gz godot-bc2e8d99.tar.zst godot-bc2e8d99.zip | |
Made Vector::ptrw explicit for writing, compiler was sometimes using the wrong function,
leading to unnecesary copy on writes and reduced performance.
Diffstat (limited to '')
| -rw-r--r-- | servers/audio/effects/audio_effect_chorus.cpp | 2 | ||||
| -rw-r--r-- | servers/audio/effects/audio_effect_delay.cpp | 4 | ||||
| -rw-r--r-- | servers/audio/effects/audio_effect_eq.cpp | 6 | ||||
| -rw-r--r-- | servers/audio_server.cpp | 10 |
4 files changed, 11 insertions, 11 deletions
diff --git a/servers/audio/effects/audio_effect_chorus.cpp b/servers/audio/effects/audio_effect_chorus.cpp index 32631beb2..cfcad24bb 100644 --- a/servers/audio/effects/audio_effect_chorus.cpp +++ b/servers/audio/effects/audio_effect_chorus.cpp @@ -68,7 +68,7 @@ void AudioEffectChorusInstance::_process_chunk(const AudioFrame *p_src_frames, A unsigned int local_rb_pos = buffer_pos; AudioFrame *dst_buff = p_dst_frames; - AudioFrame *rb_buff = audio_buffer.ptr(); + AudioFrame *rb_buff = audio_buffer.ptrw(); double delay_msec = v.delay; unsigned int delay_frames = Math::fast_ftoi((delay_msec / 1000.0) * mix_rate); diff --git a/servers/audio/effects/audio_effect_delay.cpp b/servers/audio/effects/audio_effect_delay.cpp index b8a860354..59b6a8da2 100644 --- a/servers/audio/effects/audio_effect_delay.cpp +++ b/servers/audio/effects/audio_effect_delay.cpp @@ -82,8 +82,8 @@ void AudioEffectDelayInstance::_process_chunk(const AudioFrame *p_src_frames, Au const AudioFrame *src = p_src_frames; AudioFrame *dst = p_dst_frames; - AudioFrame *rb_buf = ring_buffer.ptr(); - AudioFrame *fb_buf = feedback_buffer.ptr(); + AudioFrame *rb_buf = ring_buffer.ptrw(); + AudioFrame *fb_buf = feedback_buffer.ptrw(); for (int i = 0; i < p_frame_count; i++) { diff --git a/servers/audio/effects/audio_effect_eq.cpp b/servers/audio/effects/audio_effect_eq.cpp index 15905e3e0..dc0e00e9a 100644 --- a/servers/audio/effects/audio_effect_eq.cpp +++ b/servers/audio/effects/audio_effect_eq.cpp @@ -33,9 +33,9 @@ void AudioEffectEQInstance::process(const AudioFrame *p_src_frames, AudioFrame *p_dst_frames, int p_frame_count) { int band_count = bands[0].size(); - EQ::BandProcess *proc_l = bands[0].ptr(); - EQ::BandProcess *proc_r = bands[1].ptr(); - float *bgain = gains.ptr(); + EQ::BandProcess *proc_l = bands[0].ptrw(); + EQ::BandProcess *proc_r = bands[1].ptrw(); + float *bgain = gains.ptrw(); for (int i = 0; i < band_count; i++) { bgain[i] = Math::db2linear(base->gain[i]); } diff --git a/servers/audio_server.cpp b/servers/audio_server.cpp index 6a10d7539..a08733de8 100644 --- a/servers/audio_server.cpp +++ b/servers/audio_server.cpp @@ -191,7 +191,7 @@ void AudioServer::_driver_process(int p_frames, int32_t *p_buffer) { if (master->channels[k].active) { - AudioFrame *buf = master->channels[k].buffer.ptr(); + const AudioFrame *buf = master->channels[k].buffer.ptr(); for (int j = 0; j < to_copy; j++) { @@ -296,7 +296,7 @@ void AudioServer::_mix_step() { if (bus->channels[k].active && !bus->channels[k].used) { //buffer was not used, but it's still active, so it must be cleaned - AudioFrame *buf = bus->channels[k].buffer.ptr(); + AudioFrame *buf = bus->channels[k].buffer.ptrw(); for (uint32_t j = 0; j < buffer_size; j++) { @@ -316,7 +316,7 @@ void AudioServer::_mix_step() { if (!bus->channels[k].active) continue; - bus->channels[k].effect_instances[j]->process(bus->channels[k].buffer.ptr(), temp_buffer[k].ptr(), buffer_size); + bus->channels[k].effect_instances[j]->process(bus->channels[k].buffer.ptr(), temp_buffer[k].ptrw(), buffer_size); } //swap buffers, so internal buffer always has the right data @@ -350,7 +350,7 @@ void AudioServer::_mix_step() { if (!bus->channels[k].active) continue; - AudioFrame *buf = bus->channels[k].buffer.ptr(); + AudioFrame *buf = bus->channels[k].buffer.ptrw(); AudioFrame peak = AudioFrame(0, 0); @@ -414,7 +414,7 @@ AudioFrame *AudioServer::thread_get_channel_mix_buffer(int p_bus, int p_buffer) ERR_FAIL_INDEX_V(p_bus, buses.size(), NULL); ERR_FAIL_INDEX_V(p_buffer, buses[p_bus]->channels.size(), NULL); - AudioFrame *data = buses[p_bus]->channels[p_buffer].buffer.ptr(); + AudioFrame *data = buses[p_bus]->channels[p_buffer].buffer.ptrw(); if (!buses[p_bus]->channels[p_buffer].used) { buses[p_bus]->channels[p_buffer].used = true; |
