blob: e9a95ab1f88cbe8dc48c079616ee3d15ad20f656 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
This is Christian Hergert's "Uber-Graph"
after commit d31c8014d8cc9f293dfecfcb4bd6a7bf4d61c0be.
https://gitlab.gnome.org/chergert/uber-graph
File headers give LGPL2 as the license.
Original README follows:
Some of this code is good. Some of this code is very bad. It is a prototype,
nothing more, nothing less.
Particularly bad/nasty/unreadable code is in main.c. It is also Linux specific.
UberGraph - A realtime graph similar to that found in Gnome System Monitor.
However, it is much faster and smoother. It runs at a higher
framerate with less X bandwidth.
It uses multiple pixmaps on the server-side and shifts data between
them to lower the X bandwidth. New data is rendered and clipped so
that the transfer is small. If frame movement is < 1 pixel, the
framerate is dynamically reduced.
UberHeatMap - This is going to eventually be similar to UberGraph but as a
heat map. It's not very far yet, however.
GRing - A small circular buffer meant for values in the realtime graphs. This
is most definitely not meant to be used as a byte buffer, so don't use
it as such.
Example:
GRing *ring = g_ring_sized_new(sizeof(gdouble), 60, NULL);
or
static void free_array_func (gpointer data) {
GArray **ar = data;
g_array_unref(*ar);
}
GRing *ring = g_ring_sized_new(sizeof(GArray*), 60, free_array_func);
|