Files
i3/libi3
Uli Schlachter d6e2a38b5c Share graphics context globally (#4376)
Instead of creating a graphics context for every surface_t, this commit
adds a cache that allows to "remember" up to two GCs. Thus, the code
uses less GCs. When a GC from the cache can be used, this also gets rid
of a round-trip to the X11 server. Both of these are tiny, insignificant
savings, but so what?

Since GCs are per-depth, this code needs access to get_visual_depth().
To avoid a code duplication, this function is moved to libi3.

Fixes: https://github.com/i3/i3/issues/3478
Signed-off-by: Uli Schlachter <psychon@znc.in>
2023-07-22 10:24:13 +02:00
..
2020-04-19 09:58:25 +02:00
2020-04-20 04:25:06 +02:00
2020-04-20 04:25:06 +02:00
2020-04-19 09:58:25 +02:00
2020-04-20 04:25:06 +02:00
2020-04-19 09:58:25 +02:00
2020-04-20 04:25:06 +02:00
2020-04-20 04:25:06 +02:00
2020-05-19 14:45:06 +02:00
2020-04-20 04:25:06 +02:00
2020-04-20 04:25:06 +02:00
2020-04-19 09:58:25 +02:00
2020-04-20 04:25:06 +02:00

Introduction
============

libi3 is an *INTERNAL* library which contains functions that i3 and related
tools (i3-msg, i3-input, i3-nagbar, i3-config-wizard, i3bar) use.

It is NOT to be used by other programs.

Structure
=========

Every function gets its own .c file, which in turn gets compiled into an .o
object file. Afterwards, all .o files are archived into one static library
(libi3.a). This library will be linked into all i3 binaries. The linker is able
to eliminate unused .o files when linking, so only the functions which you
actually use will be included in the corresponding binary.