/* SPDX-License-Identifier: LGPL-2.1 */ /* * Copyright (C) 2018 VMware Inc, Yordan Karadzhov */ /** * @file libkshark-plot.h * @brief Basic tools for OpenGL plotting. */ #ifndef _LIB_KSHARK_PLOT_H #define _LIB_KSHARK_PLOT_H #ifdef __cplusplus extern "C" { #endif /** Structure defining a RGB color. */ struct ksplot_color { /** The Red component of the color. */ uint8_t red; /** The Green component of the color. */ uint8_t green; /** The Blue component of the color. */ uint8_t blue; }; /** Structure defining a 2D point. */ struct ksplot_point { /** The horizontal coordinate of the point in pixels. */ int x; /** The vertical coordinate of the pointin in pixels. */ int y; }; void ksplot_make_scene(int width, int height); void ksplot_init_opengl(int dpr); void ksplot_resize_opengl(int width, int height); void ksplot_draw_point(const struct ksplot_point *p, const struct ksplot_color *col, float size); void ksplot_draw_line(const struct ksplot_point *a, const struct ksplot_point *b, 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, float size); void ksplot_draw_polygon_contour(const struct ksplot_point *points, size_t n_points, const struct ksplot_color *col, float size); #ifdef __cplusplus } #endif #endif