aboutsummaryrefslogtreecommitdiff
path: root/deps/uber-graph/README
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);