mirror of
https://github.com/SerenityOS/serenity
synced 2024-07-22 02:26:11 +00:00
Profiler: Extract percentage gradient calculation into its own file
This commit is contained in:
parent
ddccf451a9
commit
1c3a82d59e
|
@ -9,6 +9,7 @@ set(SOURCES
|
|||
main.cpp
|
||||
IndividualSampleModel.cpp
|
||||
FlameGraphView.cpp
|
||||
Gradient.cpp
|
||||
Process.cpp
|
||||
Profile.cpp
|
||||
ProfileModel.cpp
|
||||
|
|
|
@ -5,11 +5,11 @@
|
|||
*/
|
||||
|
||||
#include "DisassemblyModel.h"
|
||||
#include "Gradient.h"
|
||||
#include "Profile.h"
|
||||
#include <LibCore/MappedFile.h>
|
||||
#include <LibDebug/DebugInfo.h>
|
||||
#include <LibELF/Image.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibSymbolication/Symbolication.h>
|
||||
#include <LibX86/Disassembler.h>
|
||||
#include <LibX86/ELFSymbolProvider.h>
|
||||
|
@ -17,23 +17,6 @@
|
|||
|
||||
namespace Profiler {
|
||||
|
||||
static Gfx::Bitmap const& heat_gradient()
|
||||
{
|
||||
static RefPtr<Gfx::Bitmap> bitmap;
|
||||
if (!bitmap) {
|
||||
bitmap = Gfx::Bitmap::try_create(Gfx::BitmapFormat::BGRx8888, { 101, 1 }).release_value_but_fixme_should_propagate_errors();
|
||||
GUI::Painter painter(*bitmap);
|
||||
painter.fill_rect_with_gradient(Orientation::Horizontal, bitmap->rect(), Color::from_rgb(0xffc080), Color::from_rgb(0xff3000));
|
||||
}
|
||||
return *bitmap;
|
||||
}
|
||||
|
||||
static Color color_for_percent(int percent)
|
||||
{
|
||||
VERIFY(percent >= 0 && percent <= 100);
|
||||
return heat_gradient().get_pixel(percent, 0);
|
||||
}
|
||||
|
||||
static Optional<MappedObject> s_kernel_binary;
|
||||
|
||||
static ELF::Image* try_load_kernel_binary()
|
||||
|
|
29
Userland/DevTools/Profiler/Gradient.cpp
Normal file
29
Userland/DevTools/Profiler/Gradient.cpp
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include "Gradient.h"
|
||||
#include <LibGUI/Painter.h>
|
||||
|
||||
namespace Profiler {
|
||||
|
||||
static Gfx::Bitmap const& heat_gradient()
|
||||
{
|
||||
static RefPtr<Gfx::Bitmap> bitmap;
|
||||
if (!bitmap) {
|
||||
bitmap = Gfx::Bitmap::try_create(Gfx::BitmapFormat::BGRx8888, { 101, 1 }).release_value_but_fixme_should_propagate_errors();
|
||||
GUI::Painter painter(*bitmap);
|
||||
painter.fill_rect_with_gradient(Orientation::Horizontal, bitmap->rect(), Color::from_rgb(0xffc080), Color::from_rgb(0xff3000));
|
||||
}
|
||||
return *bitmap;
|
||||
}
|
||||
|
||||
Color color_for_percent(u8 percent)
|
||||
{
|
||||
VERIFY(percent <= 100);
|
||||
return heat_gradient().get_pixel(percent, 0);
|
||||
}
|
||||
|
||||
}
|
15
Userland/DevTools/Profiler/Gradient.h
Normal file
15
Userland/DevTools/Profiler/Gradient.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibGfx/Color.h>
|
||||
|
||||
namespace Profiler {
|
||||
|
||||
Color color_for_percent(u8 percent);
|
||||
|
||||
}
|
|
@ -5,9 +5,10 @@
|
|||
*/
|
||||
|
||||
#include "SourceModel.h"
|
||||
#include "Gradient.h"
|
||||
#include "Profile.h"
|
||||
#include <LibDebug/DebugInfo.h>
|
||||
#include <LibGUI/Painter.h>
|
||||
#include <LibGfx/FontDatabase.h>
|
||||
#include <LibSymbolication/Symbolication.h>
|
||||
#include <stdio.h>
|
||||
|
||||
|
@ -53,23 +54,6 @@ private:
|
|||
Vector<Line> m_lines;
|
||||
};
|
||||
|
||||
static Gfx::Bitmap const& heat_gradient()
|
||||
{
|
||||
static RefPtr<Gfx::Bitmap> bitmap;
|
||||
if (!bitmap) {
|
||||
bitmap = Gfx::Bitmap::try_create(Gfx::BitmapFormat::BGRx8888, { 101, 1 }).release_value_but_fixme_should_propagate_errors();
|
||||
GUI::Painter painter(*bitmap);
|
||||
painter.fill_rect_with_gradient(Orientation::Horizontal, bitmap->rect(), Color::from_rgb(0xffc080), Color::from_rgb(0xff3000));
|
||||
}
|
||||
return *bitmap;
|
||||
}
|
||||
|
||||
static Color color_for_percent(int percent)
|
||||
{
|
||||
VERIFY(percent >= 0 && percent <= 100);
|
||||
return heat_gradient().get_pixel(percent, 0);
|
||||
}
|
||||
|
||||
SourceModel::SourceModel(Profile& profile, ProfileNode& node)
|
||||
: m_profile(profile)
|
||||
, m_node(node)
|
||||
|
|
Loading…
Reference in a new issue