tests/intel/xe_sriov_flr: Add flr-twice subtest
[drm/igt-gpu-tools.git] / overlay / chart.h
blob16def7a45ba563488cf6e14874a983735a4a3b65
1 /*
2 * Copyright © 2013 Intel Corporation
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 * IN THE SOFTWARE.
25 #ifndef CHART_H
26 #define CHART_H
28 struct chart {
29 const char *name;
30 int x, y, w, h;
31 int num_samples;
32 int current_sample;
33 int range_automatic;
34 enum chart_mode {
35 CHART_STROKE = 0,
36 CHART_FILL,
37 CHART_FILL_STROKE,
38 } mode;
39 enum chart_smooth {
40 CHART_LINE = 0,
41 CHART_CURVE,
42 } smooth;
43 float fill_rgb[4];
44 float stroke_rgb[4];
45 double stroke_width;
46 double range[2];
47 double *samples;
50 int chart_init(struct chart *chart, const char *name, int num_samples);
51 void chart_set_mode(struct chart *chart, enum chart_mode mode);
52 void chart_set_smooth(struct chart *chart, enum chart_smooth smooth);
53 void chart_set_fill_rgba(struct chart *chart, float red, float green, float blue, float alpha);
54 void chart_set_stroke_width(struct chart *chart, float width);
55 void chart_set_stroke_rgba(struct chart *chart, float red, float green, float blue, float alpha);
56 void chart_set_position(struct chart *chart, int x, int y);
57 void chart_set_size(struct chart *chart, int w, int h);
58 void chart_set_range(struct chart *chart, double min, double max);
59 void chart_add_sample(struct chart *chart, double value);
60 void chart_draw(struct chart *chart, cairo_t *cr);
61 void chart_fini(struct chart *chart);
63 void chart_get_range(struct chart *chart, double *range);
65 #endif /* CHART_H */