mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 22:22:45 +00:00 
			
		
		
		
	 60b72b8033
			
		
	
	
		60b72b8033
		
	
	
	
	
		
			
			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.
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			772 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			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;
 | |
| };
 | |
| 
 | |
| }
 |