comparison DPF-Prymula-audioplugins/dpf/dgl/src/pugl-upstream/README.md @ 3:84e66ea83026

DPF-Prymula-audioplugins-0.231015-2
author prymula <prymula76@outlook.com>
date Mon, 16 Oct 2023 21:53:34 +0200
parents
children
comparison
equal deleted inserted replaced
2:cf2cb71d31dd 3:84e66ea83026
1 Pugl
2 ====
3
4 Pugl (PlUgin Graphics Library) is a minimal portability layer for GUIs which is
5 suitable for use in plugins. It works on X11, MacOS, and Windows, and includes
6 optional support for drawing with Vulkan, OpenGL, and Cairo.
7
8 Pugl is vaguely similar to libraries like GLUT and GLFW, but has different
9 goals and priorities:
10
11 * Minimal in scope, providing only a thin interface to isolate
12 platform-specific details from applications.
13
14 * Zero dependencies, aside from standard system libraries.
15
16 * Support for embedding in native windows, for example as a plugin or
17 component within a larger application that is not based on Pugl.
18
19 * Explicit context and no static data, so that several instances can be used
20 within a single program at once.
21
22 * Consistent event-based API that makes dispatching in application or toolkit
23 code easy with minimal boilerplate.
24
25 * Suitable for both continuously rendering applications like games, and
26 event-driven applications that only draw when necessary.
27
28 * Small, liberally licensed implementation that is suitable for vendoring
29 and/or static linking. Pugl can be installed as a library, or used by
30 simply copying the implementation into a project.
31
32 Stability
33 ---------
34
35 Pugl is currently being developed towards a long-term stable API. For the time
36 being, however, the API may break occasionally. Please report any relevant
37 feedback, or file feature requests, so that we can ensure that the released API
38 is stable for as long as possible.
39
40 When the API changes, backwards compatibility is maintained where possible.
41 These compatibility shims will be removed before release, so users are
42 encouraged to build with `PUGL_DISABLE_DEPRECATED` defined.
43
44 Documentation
45 -------------
46
47 Pugl is a C library that includes C++ bindings.
48 Each API is documented separately:
49
50 * [C Documentation (single page)](https://lv2.gitlab.io/pugl/c/singlehtml/)
51 * [C Documentation (paginated)](https://lv2.gitlab.io/pugl/c/html/)
52 * [C++ Documentation (single page)](https://lv2.gitlab.io/pugl/cpp/singlehtml/)
53 * [C++ Documentation (paginated)](https://lv2.gitlab.io/pugl/cpp/html/)
54
55 The documentation will also be built from the source if the `docs`
56 configuration option is enabled, and both Doxygen and Sphinx are available.
57
58 Testing
59 -------
60
61 Some unit tests are included, but unfortunately manual testing is still
62 required. The tests and example programs are built by default. You can run
63 all the tests at once via ninja:
64
65 meson setup build
66 cd build
67 ninja test
68
69 The [examples](examples) directory contains several demonstration programs that
70 can be used for manual testing.
71
72 -- David Robillard <d@drobilla.net>