From 1a98873c6ef52d5b61b77878c83021b07b558294 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Sun, 17 Dec 2017 11:31:42 +1100 Subject: Initial commit, very basic outline of what to get done --- .gitignore | 5 +++++ doc/overview.txt | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 .gitignore create mode 100644 doc/overview.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e0debad --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ + + +*.ali +*.o +*.d diff --git a/doc/overview.txt b/doc/overview.txt new file mode 100644 index 0000000..6a9319d --- /dev/null +++ b/doc/overview.txt @@ -0,0 +1,38 @@ + + +Ada Wayland Binding + + + +Specific points about this binding: + +- Memory management is set up so that, from the Ada side, the programmer can + treat all objects as if they were stack objects. Any and all ways to avoid + dangling references without burdening the programmer using the library are + taken advantage of. + +- Callbacks are done with function/procedure accesses rather than tagged types, + in order to minimise boilerplate for programmers using the library. + + + +The following files are bound manually: + +wayland-server-core.h -> Wayland.Server +wayland-client-core.h -> Wayland.Client +wayland-egl-core.h -> Wayland.EGL + + + +Then a generator is used to process the protocol XML files and produce all +remaining bindings. Probably into Wayland.Protocols. + + + +References: + +https://wayland.freedesktop.org/docs/pdf/Documentation-1.3-Wayland-en-US.pdf +http://www.jlekstrand.net/jason/projects/wayland/language-bindings-guide/ + + + -- cgit