summaryrefslogtreecommitdiff
path: root/src/overlays.h
blob: 19678e55d2d3653a086a3f437488722d0049d125 (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
40
#ifndef _OVERLAYS_H
#define _OVERLAYS_H

#include <X11/Xlib.h>
#include <X11/extensions/Xrender.h>

typedef struct _vwm_t vwm_t;
typedef struct _vwm_xwindow_t vwm_xwindow_t;

/* everything needed by the per-window overlay's context */
typedef struct _vwm_overlay_t {
	Pixmap	text_pixmap;		/* pixmap for overlayed text (kept around for XDrawText usage) */
	Picture	text_picture;		/* picture representation of text_pixmap */
	Picture	shadow_picture;		/* text shadow layer */
	Picture	grapha_picture;		/* graph A layer */
	Picture	graphb_picture;		/* graph B layer */
	Picture	tmp_picture;		/* 1 row worth of temporary picture space */
	Picture	picture;		/* overlay picture derived from the pixmap, for render compositing */
	int	width;			/* current width of the overlay */
	int	height;			/* current height of the overlay */
	int	phase;			/* current position within the (horizontally scrolling) graphs */
	int	heirarchy_end;		/* row where the process heirarchy currently ends */
	int	snowflakes_cnt;		/* count of snowflaked rows (reset to zero to truncate snowflakes display) */
	int	gen_last_composed;	/* the last composed vmon generation */
	int	redraw_needed;		/* if a redraw is required (like when the window is resized...) */
} vwm_overlay_t;
typedef struct _vwm_overlays_t vwm_overlays_t;

int vwm_overlay_xwin_composed_height(vwm_t *vwm, vwm_xwindow_t *xwin);
void vwm_overlay_xwin_reset_snowflakes(vwm_t *vwm, vwm_xwindow_t *xwin);
void vwm_overlay_xwin_create(vwm_t *vwm, vwm_xwindow_t *xwin);
void vwm_overlay_xwin_destroy(vwm_t *vwm, vwm_xwindow_t *xwin);
void vwm_overlay_xwin_compose(vwm_t *vwm, vwm_xwindow_t *xwin);
vwm_overlays_t * vwm_overlays_create(vwm_t *vwm);
void vwm_overlays_destroy(vwm_overlays_t *overlays);
void vwm_overlays_rate_increase(vwm_overlays_t *overlays);
void vwm_overlays_rate_decrease(vwm_overlays_t *overlays);
int vwm_overlays_update(vwm_overlays_t *overlays, int *desired_delay);

#endif
© All Rights Reserved