X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=logicsignal.h;h=60250b1e4bcac7669d00d0c9dbeb55bc56f5bbe0;hb=131e801229c3cc899dd8a478d4491e384e57238e;hp=9daf65005f3d35d4eaf6c71319a958877a1cf56b;hpb=28a4c9c5eb20296199fc3496bb40b7733dffac75;p=pulseview.git diff --git a/logicsignal.h b/logicsignal.h index 9daf650..60250b1 100644 --- a/logicsignal.h +++ b/logicsignal.h @@ -26,10 +26,45 @@ class LogicData; class LogicSignal : public Signal { +private: + struct Point2F + { + GLfloat x, y; + }; + +private: + static const float Margin; + + static const float EdgeColour[3]; + static const float HighColour[3]; + static const float LowColour[3]; + public: - LogicSignal(QString name, boost::shared_ptr data, + LogicSignal(QString name, + boost::shared_ptr data, int probe_index); + /** + * Paints the signal into a QGLWidget. + * @param widget the QGLWidget to paint into. + * @param rect the rectangular area to draw the trace into. + * @param scale the scale in seconds per pixel. + * @param offset the time to show at the left hand edge of + * the view in seconds. + **/ + void paint(QGLWidget &widget, const QRect &rect, double scale, + double offset); + +private: + + int paint_caps(Point2F *const cap_points, + std::vector< std::pair > &edges, + bool level, double samples_per_pixel, double pixels_offset, + int x_offset, int y_offset); + + static void paint_lines(Point2F *points, int count); + private: int _probe_index; + boost::shared_ptr _data; };