Mercurial > hg > pub > prymula > com
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> |