-void ewmh_tile16(unsigned long *icon, const XColor *c, int tile_x, int tile_y);
-void ewmh_tile24(unsigned long *icon, const XColor *c, int tile_x, int tile_y);
-void ewmh_tile32(unsigned long *icon, const XColor *c, int tile_x, int tile_y);
-void ewmh_tile48(unsigned long *icon, const XColor *c, int tile_x, int tile_y);
-
-/*
- * Allocate storage for the EWMH _NET_WM_ICON array. The sizes array is
- * populated with pointers to the beginning of each icon's pixel data. For
- * example, sizes[ICON_24x24] points to the first pixel of the 24x24 image.
- *
- * The returned value can then be passed to XChangeProperty to set the icon,
- * (use EWMH_ICON_NELEM for the number of elements) and must be freed by the
- * caller.
- */
-void *ewmh_icon_alloc(unsigned long **sizes);
-
-/*
- * Check if the root window indicates support for EWMH icons. Returns 1 if
- * supported, or 0 otherwise.
- */
-int ewmh_probe_wm_icon(Widget shell);
+void x11_initialize(struct app_state *state, Widget shell);
+void x11_redraw_icon(struct app_state *state, Widget shell);
+void x11_redraw_goal(struct app_state *state, uint_fast32_t mask);
+void x11_redraw_game(struct app_state *state, uint_fast32_t mask);