From 4ef37f16257b42512ec610cc5def338707308747 Mon Sep 17 00:00:00 2001 From: Samuel Fadel Date: Tue, 6 Jun 2023 16:58:40 +0200 Subject: BarChart, Wayland. * Makefile: Added some Wayland stuff to cflags/libs in pkg-config * barchart: Rendering works, no interactivity * main.cpp: Reposition some components for a more compact view * manifest.scm: glfw-wayland: Added GLFW variant with Wayland * scatterplot.cpp and voronoisplat.cpp: Cleanup --- barchart.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'barchart.h') diff --git a/barchart.h b/barchart.h index 9e2b421..947fe2b 100644 --- a/barchart.h +++ b/barchart.h @@ -5,10 +5,11 @@ #include #include +#include #include -#include "colorscale.h" #include "scale.h" +#include "shader.h" class BarChart { @@ -17,23 +18,25 @@ public: size_t width() const { return m_width; } size_t height() const { return m_height; } + GLuint texture() const { return m_outTex; } nod::signal valuesChanged; - nod::signal)> colorScaleChanged; nod::signal &)> selectionChanged; nod::signal &)> selectionInteractivelyChanged; nod::signal itemBrushed; nod::signal itemInteractivelyBrushed; + void setSize(size_t, size_t); void setValues(const arma::vec &values); void updateValues(const arma::vec &values); - void setColorScale(std::shared_ptr scale); + void setColormap(GLuint texture); void setSelection(const std::vector &selection); void brushItem(int item); void update(); + void draw(); -protected: + // protected: // QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *); // void hoverEnterEvent(QHoverEvent *event); @@ -45,6 +48,8 @@ protected: // void mouseReleaseEvent(QMouseEvent *event); private: + void updateBars(); + // QSGNode *newSceneGraph() const; // QSGNode *newBarNode() const; // QSGNode *newSelectionBarNode() const; @@ -53,6 +58,7 @@ private: // void updateBarNodeGeom(QSGNode *barNode, float x, float width, float height) const; // void updateBarNodeColor(QSGNode *barNode, const QColor &color) const; // void updateBars(QSGNode *node) const; + bool m_redraw; bool m_shouldUpdateBars; // void updatePreSelection(QSGNode *node) const; @@ -71,11 +77,13 @@ private: int itemAt(float x, bool includeSelectorWidth = false) const; + size_t m_width, m_height; + GLuint m_FBO, m_VAO, m_VBO, m_colormapTex, m_outTex; + std::unique_ptr m_shader; + arma::vec m_values; - std::shared_ptr m_colorScale; std::vector m_originalIndices, m_currentIndices; LinearScale m_scale; - size_t m_width, m_height; }; #endif // BARCHART_H -- cgit v1.2.3