Move lightness waveform behind RGB waveform

This commit is contained in:
Lawrence Lee
2020-08-05 12:23:34 -07:00
parent 9a89eb5454
commit 426162f269

View File

@@ -1432,14 +1432,10 @@ void HistogramArea::drawWaveform(Cairo::RefPtr<Cairo::Context> &cr, int w, int h
wave_buffer_dirty = false; wave_buffer_dirty = false;
} }
Cairo::RefPtr<Cairo::ImageSurface> surface = Cairo::ImageSurface::create( Cairo::RefPtr<Cairo::ImageSurface> surface;
wave_buffer.get(), Cairo::FORMAT_ARGB32, waveform_width, 256, cairo_stride);
auto orig_matrix = cr->get_matrix(); auto orig_matrix = cr->get_matrix();
cr->translate(0, padding); cr->translate(0, padding);
cr->scale(static_cast<double>(w) / waveform_width, (h - 2 * padding) / 256.0); cr->scale(static_cast<double>(w) / waveform_width, (h - 2 * padding) / 256.0);
cr->set_source(surface, 0, 0);
cr->set_operator(Cairo::OPERATOR_OVER);
cr->paint();
if (needLuma) { if (needLuma) {
surface = Cairo::ImageSurface::create( surface = Cairo::ImageSurface::create(
wave_buffer_luma.get(), Cairo::FORMAT_ARGB32, waveform_width, 256, cairo_stride); wave_buffer_luma.get(), Cairo::FORMAT_ARGB32, waveform_width, 256, cairo_stride);
@@ -1447,6 +1443,11 @@ void HistogramArea::drawWaveform(Cairo::RefPtr<Cairo::Context> &cr, int w, int h
cr->set_operator(Cairo::OPERATOR_OVER); cr->set_operator(Cairo::OPERATOR_OVER);
cr->paint(); cr->paint();
} }
surface = Cairo::ImageSurface::create(
wave_buffer.get(), Cairo::FORMAT_ARGB32, waveform_width, 256, cairo_stride);
cr->set_source(surface, 0, 0);
cr->set_operator(Cairo::OPERATOR_OVER);
cr->paint();
surface->finish(); surface->finish();
cr->set_matrix(orig_matrix); cr->set_matrix(orig_matrix);
} }