linux-trace-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Yordan Karadzhov (VMware)" <y.karadz@gmail.com>
To: rostedt@goodmis.org
Cc: linux-trace-devel@vger.kernel.org,
	"Yordan Karadzhov (VMware)" <y.karadz@gmail.com>
Subject: [PATCH v6 23/27] kernel-shark: Add ksplot_draw_polyline()
Date: Wed,  9 Dec 2020 15:41:59 +0200	[thread overview]
Message-ID: <20201209134203.428068-24-y.karadz@gmail.com> (raw)
In-Reply-To: <20201209134203.428068-1-y.karadz@gmail.com>

The method draws continuous line between an ordered array of
points (poly-line).

Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com>
---
 src/libkshark-plot.c | 32 ++++++++++++++++++++++++++------
 src/libkshark-plot.h |  5 +++++
 2 files changed, 31 insertions(+), 6 deletions(-)

diff --git a/src/libkshark-plot.c b/src/libkshark-plot.c
index 1c45f44..32848b0 100644
--- a/src/libkshark-plot.c
+++ b/src/libkshark-plot.c
@@ -151,6 +151,30 @@ void ksplot_draw_line(const struct ksplot_point *a,
 	glEnd();
 }
 
+/**
+ * @brief Draw the a polyline.
+ *
+ * @param points: Input location for the array of points defining the polyline.
+ * @param n_points: The size of the array of points.
+ * @param col: The color of the polyline.
+ * @param size: The size of the polyline.
+ */
+void ksplot_draw_polyline(const struct ksplot_point *points,
+			  size_t n_points,
+			  const struct ksplot_color *col,
+			  float size)
+{
+	if (!points || !n_points || !col || size < .5f)
+		return;
+
+	/* Loop over the points of the polygon and draw connecting lines. */
+	for(size_t i = 1; i < n_points; ++i)
+		ksplot_draw_line(&points[i - 1],
+				 &points[i],
+				 col,
+				 size);
+}
+
 /**
  * @brief Draw a polygon.
  *
@@ -212,12 +236,8 @@ void ksplot_draw_polygon_contour(const struct ksplot_point *points,
 	if (!points || !n_points || !col || size < .5f)
 		return;
 
-	/* Loop over the points of the polygon and draw connecting lines. */
-	for(size_t i = 1; i < n_points; ++i)
-		ksplot_draw_line(&points[i - 1],
-				 &points[i],
-				 col,
-				 size);
+	/* Loop over the points of the polygon and draw a polyline. */
+	ksplot_draw_polyline(points, n_points, col, size);
 
 	/* Close the contour. */
 	ksplot_draw_line(&points[0],
diff --git a/src/libkshark-plot.h b/src/libkshark-plot.h
index 063740d..d881b20 100644
--- a/src/libkshark-plot.h
+++ b/src/libkshark-plot.h
@@ -72,6 +72,11 @@ void ksplot_draw_line(const struct ksplot_point *a,
 		      const struct ksplot_color *col,
 		      float size);
 
+void ksplot_draw_polyline(const struct ksplot_point *points,
+			  size_t n_points,
+			  const struct ksplot_color *col,
+			  float size);
+
 void ksplot_draw_polygon(const struct ksplot_point *points,
 			 size_t n_points,
 			 const struct ksplot_color *col,
-- 
2.25.1


  parent reply	other threads:[~2020-12-09 13:43 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-09 13:41 [PATCH v6 00/27] Start KernelShark v2 transformation Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 01/27] kernel-shark: Use only signed types in kshark_entry Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 02/27] kernel-shark: Add stream_id to kshark_entry Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 03/27] kernel-shark: Introduce libkshark-hash Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 04/27] kernel-shark: Introduce Data streams Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 05/27] kernel-shark: Rename static methods in libkshark Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 06/27] kernel-shark: Add basic methods for Data streams Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 07/27] kernel-shark: Housekeeping before implementing stream interface Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 08/27] kernel-shark: Add stream interface for trace-cmd data Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 09/27] kernel-shark: Start introducing KernelShark 2.0 Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 10/27] kernel-shark: Start using data streams Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 11/27] kernel-shark: Remove dead code Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 12/27] kernel-shark: Redesign the plugin interface Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 13/27] kernel-shark: Complete the stream integration Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 14/27] kernel-shark: Provide merging of multiple data streams Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 15/27] kernel-shark: Integrate the stream definitions with data model Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 16/27] kernel-shark: Use only signed types for model defs Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 17/27] kernel-shark: Add ksmodel_get_bin() Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 18/27] kernel-shark: Protect ksmodel_set_in_range_bining() Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 19/27] kernel-shark: Add methods for time calibration Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 20/27] kernel-shark: Integrate streams with libkshark-configio Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 21/27] kernel-shark: Add support for drawing text Yordan Karadzhov (VMware)
2020-12-09 13:41 ` [PATCH v6 22/27] kernel-shark: Make GLUT optional dependency Yordan Karadzhov (VMware)
2020-12-09 13:41 ` Yordan Karadzhov (VMware) [this message]
2020-12-09 13:42 ` [PATCH v6 24/27] kernel-shark: Optimize ksplot_draw_polygon() Yordan Karadzhov (VMware)
2020-12-09 13:42 ` [PATCH v6 25/27] kernel-shark: Do not use the ARRAY_SIZE macro Yordan Karadzhov (VMware)
2020-12-09 13:42 ` [PATCH v6 26/27] kernel-shark: Add basic infrastructure for testing Yordan Karadzhov (VMware)
2020-12-09 13:42 ` [PATCH v6 27/27] kernel-shark: Add "github Actions" workflow Yordan Karadzhov (VMware)
2020-12-10  2:38 ` [PATCH v6 00/27] Start KernelShark v2 transformation Steven Rostedt
2020-12-10  8:48   ` David Runge
2020-12-10 14:38     ` Yordan Karadzhov (VMware)
2020-12-10 14:42     ` Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201209134203.428068-24-y.karadz@gmail.com \
    --to=y.karadz@gmail.com \
    --cc=linux-trace-devel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).