aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-05-28 23:11:51 -0400
committerDavid Robillard <d@drobilla.net>2022-05-28 23:14:05 -0400
commit4dd1eac7c46f7be257ce10cb2ce6b79939650938 (patch)
tree608f9ff2b4622b0f237d959ed112f390545c49b1 /README.md
parent574bf1e11d73059ec5e6099e6806d919e1ac22b0 (diff)
downloadpugl-4dd1eac7c46f7be257ce10cb2ce6b79939650938.tar.gz
pugl-4dd1eac7c46f7be257ce10cb2ce6b79939650938.tar.bz2
pugl-4dd1eac7c46f7be257ce10cb2ce6b79939650938.zip
Update documentation
Diffstat (limited to 'README.md')
-rw-r--r--README.md62
1 files changed, 16 insertions, 46 deletions
diff --git a/README.md b/README.md
index f089ed7..aae05eb 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,12 @@
Pugl
====
-Pugl (PlUgin Graphics Library) is a minimal portable API for GUIs which is
-suitable for use in plugins. It works on X11, MacOS, and Windows, and
-includes optional support for drawing with Vulkan, OpenGL, and Cairo.
+Pugl (PlUgin Graphics Library) is a minimal portability layer for GUIs which is
+suitable for use in plugins. It works on X11, MacOS, and Windows, and includes
+optional support for drawing with Vulkan, OpenGL, and Cairo.
-Pugl is vaguely similar to libraries like GLUT and GLFW, but with some
-distinguishing features:
+Pugl is vaguely similar to libraries like GLUT and GLFW, but has different
+goals and priorities:
* Minimal in scope, providing only a thin interface to isolate
platform-specific details from applications.
@@ -16,18 +16,18 @@ distinguishing features:
* Support for embedding in native windows, for example as a plugin or
component within a larger application that is not based on Pugl.
- * Simple and consistent event-based API that makes dispatching in application
- or toolkit code easy with minimal boilerplate.
+ * Explicit context and no static data, so that several instances can be used
+ within a single program at once.
- * Suitable not only for continuously rendering applications like games, but
- also event-driven applications that only draw when necessary.
+ * Consistent event-based API that makes dispatching in application or toolkit
+ code easy with minimal boilerplate.
- * Explicit context and no static data whatsoever, so that several instances
- can be used within a single program at once.
+ * Suitable for both continuously rendering applications like games, and
+ event-driven applications that only draw when necessary.
- * Small, liberally licensed Free Software implementation that is suitable for
- vendoring and/or static linking. Pugl can be installed as a library, or
- used by simply copying the implementation into a project.
+ * Small, liberally licensed implementation that is suitable for vendoring
+ and/or static linking. Pugl can be installed as a library, or used by
+ simply copying the implementation into a project.
Stability
---------
@@ -66,37 +66,7 @@ all the tests at once via ninja:
cd build
ninja test
-The `examples` directory contains several programs that serve as both manual
-tests and demonstrations:
-
- * `pugl_embed_demo` shows a view embedded in another, and also tests
- requesting attention (which happens after 5 seconds), keyboard focus
- (switched by pressing tab), view moving (with the arrow keys), and view
- resizing (with the arrow keys while shift is held). This program uses only
- very old OpenGL and should work on any system.
-
- * `pugl_window_demo` demonstrates multiple top-level windows.
-
- * `pugl_shader_demo` demonstrates using more modern OpenGL (version 3 or 4)
- where dynamic loading and shaders are required. It can also be used to test
- performance by passing the number of rectangles to draw on the command line.
-
- * `pugl_cairo_demo` demonstrates using Cairo on top of the native windowing
- system (without OpenGL), and partial redrawing.
-
- * `pugl_print_events` is a utility that prints all received events to the
- console in a human readable format.
-
- * `pugl_cpp_demo` is a simple cube demo that uses the C++ API.
-
- * `pugl_vulkan_demo` is a simple example of using Vulkan in C that simply
- clears the window.
-
- * `pugl_vulkan_cpp_demo` is a more advanced Vulkan demo in C++ that draws many
- animated rectangles like `pugl_shader_demo`.
-
-All example programs support several command line options to control various
-behaviours, see the output of `--help` for details. Please file an issue if
-any of these programs do not work as expected on your system.
+The [examples](examples) directory contains several demonstration programs that
+can be used for manual testing.
-- David Robillard <d@drobilla.net>