1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-12 03:52:08 +00:00
serenity/Userland/Applications/PixelPaint/HistogramWidget.h
Torstennator 60b72b8033 PixelPaint: Calculate histogram and vectorscope data only when needed
With this patch the histogram and vectorscope data for the image is
only computed when the widgets are visible to the user and therefore
saves some processing time when this information is not required
to be computed.
2023-08-25 11:14:03 +01:00

39 lines
772 B
C++

/*
* Copyright (c) 2022, Torsten Engelmann
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include "Image.h"
#include "ScopeWidget.h"
namespace PixelPaint {
class HistogramWidget final
: public ScopeWidget {
C_OBJECT(HistogramWidget);
public:
virtual ~HistogramWidget() = default;
virtual void image_changed() override;
private:
HistogramWidget() = default;
virtual AK::StringView widget_config_name() const override { return "ShowHistogram"sv; }
virtual void paint_event(GUI::PaintEvent&) override;
ErrorOr<void> rebuild_histogram_data();
struct HistogramData {
Vector<int> red;
Vector<int> green;
Vector<int> blue;
Vector<int> brightness;
};
HistogramData m_data;
};
}