Files
Renderive/Qt/plot/Plot.h
T
2026-08-02 14:20:27 +08:00

38 lines
1.2 KiB
C++

#pragma once
#include "Core/architecture/global.h"
#include "Core/architecture/Render_Config.h"
#include "Core/architecture/Renderable.h"
#include <QColor>
#include <QEvent>
#include <QPaintEvent>
#include <QString>
#include <QWidget>
#include <memory>
namespace renderive {
void LIB_DECL start_render_scheduler(Render_Runtime_Config config = {});
struct Abs_Plot_Private;
class Plot_Core;
class Performance_Overlay;
class Latency_Eager_Plot;
class Explicit_Plot;
class LIB_DECL Abs_Plot : public QWidget {
Q_OBJECT
public:
virtual void init();
QColor background_color();
[[nodiscard]] Plot_Core* core() const;
[[nodiscard]] std::shared_ptr<Renderable> root_renderable() const;
[[nodiscard]] std::shared_ptr<Renderable> create_renderable_node(const std::shared_ptr<Renderable>& parent, const QString& object_name = {}) const;
QString object_name;
void set_background_color(const QColor& color);
void remove_renderable(const std::shared_ptr<Renderable>& able);
virtual void init_renderable_tree();
~Abs_Plot() override;
protected:
explicit Abs_Plot(Abs_Plot_Private* private_data);
bool event(QEvent* event) final;
void paintEvent(QPaintEvent* event) final;
Abs_Plot_Private* d{};
};
} // namespace renderive