@@ -1181,7 +1181,8 @@ void HistogramArea::update(
|
|||||||
bhistRaw = histBlueRaw;
|
bhistRaw = histBlueRaw;
|
||||||
break;
|
break;
|
||||||
case ScopeType::PARADE:
|
case ScopeType::PARADE:
|
||||||
case ScopeType::WAVEFORM:
|
case ScopeType::WAVEFORM: {
|
||||||
|
MyWriterLock wave_lock(wave_mutex);
|
||||||
waveform_scale = waveformScale;
|
waveform_scale = waveformScale;
|
||||||
rwave = waveformRed;
|
rwave = waveformRed;
|
||||||
gwave = waveformGreen;
|
gwave = waveformGreen;
|
||||||
@@ -1189,6 +1190,7 @@ void HistogramArea::update(
|
|||||||
lwave = waveformLuma;
|
lwave = waveformLuma;
|
||||||
parade_buffer_r_dirty = parade_buffer_g_dirty = parade_buffer_b_dirty = wave_buffer_dirty = wave_buffer_luma_dirty = true;
|
parade_buffer_r_dirty = parade_buffer_g_dirty = parade_buffer_b_dirty = wave_buffer_dirty = wave_buffer_luma_dirty = true;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case ScopeType::VECTORSCOPE_HS:
|
case ScopeType::VECTORSCOPE_HS:
|
||||||
vectorscope_scale = vectorscopeScale;
|
vectorscope_scale = vectorscopeScale;
|
||||||
vect_hs = vectorscopeHS;
|
vect_hs = vectorscopeHS;
|
||||||
@@ -1313,6 +1315,7 @@ void HistogramArea::updateBackBuffer ()
|
|||||||
|
|
||||||
cr->unset_dash();
|
cr->unset_dash();
|
||||||
|
|
||||||
|
MyReaderLock wave_lock(wave_mutex);
|
||||||
if (valid && (scopeType == ScopeType::HISTOGRAM || scopeType == ScopeType::HISTOGRAM_RAW)) {
|
if (valid && (scopeType == ScopeType::HISTOGRAM || scopeType == ScopeType::HISTOGRAM_RAW)) {
|
||||||
bool rawMode = scopeType == ScopeType::HISTOGRAM_RAW;
|
bool rawMode = scopeType == ScopeType::HISTOGRAM_RAW;
|
||||||
|
|
||||||
@@ -1429,6 +1432,7 @@ void HistogramArea::updateBackBuffer ()
|
|||||||
} else if (scopeType == ScopeType::VECTORSCOPE_HC || scopeType == ScopeType::VECTORSCOPE_HS) {
|
} else if (scopeType == ScopeType::VECTORSCOPE_HC || scopeType == ScopeType::VECTORSCOPE_HS) {
|
||||||
drawVectorscope(cr, w, h);
|
drawVectorscope(cr, w, h);
|
||||||
}
|
}
|
||||||
|
wave_lock.release();
|
||||||
|
|
||||||
// Draw the frame's border
|
// Draw the frame's border
|
||||||
style->render_frame(cr, 0, 0, surface->get_width(), surface->get_height());
|
style->render_frame(cr, 0, 0, surface->get_width(), surface->get_height());
|
||||||
|
@@ -169,6 +169,7 @@ protected:
|
|||||||
bool vect_hc_buffer_dirty, vect_hs_buffer_dirty;
|
bool vect_hc_buffer_dirty, vect_hs_buffer_dirty;
|
||||||
int waveform_scale;
|
int waveform_scale;
|
||||||
array2D<int> rwave, gwave, bwave, lwave;
|
array2D<int> rwave, gwave, bwave, lwave;
|
||||||
|
MyRWMutex wave_mutex;
|
||||||
std::vector<unsigned char> parade_buffer_r;
|
std::vector<unsigned char> parade_buffer_r;
|
||||||
std::vector<unsigned char> parade_buffer_g;
|
std::vector<unsigned char> parade_buffer_g;
|
||||||
std::vector<unsigned char> parade_buffer_b;
|
std::vector<unsigned char> parade_buffer_b;
|
||||||
|
Reference in New Issue
Block a user