aboutsummaryrefslogtreecommitdiffstats
path: root/include/pugl
AgeCommit message (Collapse)AuthorFilesLines
2020-11-26Use consistent spelling in documentationDavid Robillard1-4/+4
2020-11-26Remove file documentationDavid Robillard5-29/+7
These will not be used in the Sphinx documentation, and most were self-explanatory and only there to make the Doxygen index look nice anyway. Where there was actually useful information, it has been preserved as regular comments.
2020-11-26Don't use lists in return documentationDavid Robillard1-17/+14
This causes some annoying typesetting issues it's simpler to just avoid.
2020-11-25Rename puglShowWindow and puglHideWindow to puglShow an puglHideDavid Robillard1-2/+8
These names were confusing because a view is not necessarily a window. Since there's no room for ambiguity here, simply drop the superfluous word.
2020-11-25Move puglEnterContext and puglLeaveContext to GL backendsDavid Robillard2-30/+18
These only do anything for OpenGL, and it seems unlikely that they will ever be used for anything else. So, move them to the GL headers to remove clutter from the core API, and ensure that they are only used in GL applications that include the appropriate headers and link with a GL backend. Also add missing C++ bindings.
2020-11-25Pass vkGetInstanceProcAddr to puglCreateSurface instead of a loaderDavid Robillard1-2/+2
This allows puglCreateSurface() to be used with some other loader, or when linking to Vulkan at compile time.
2020-11-01Run clang-tidy on all headers and fix various issuesDavid Robillard1-5/+0
It's a nightmare trying to get this thing to check everything.
2020-11-01Add missing documentation for VulkanDavid Robillard1-1/+5
2020-10-30Remove logging APIDavid Robillard1-36/+0
This was missing from the C++ bindings and barely used anyway, so just remove it for now in the interests of simplicity and finalizing a stable API. The information previously logged in the X11 GL backend is now available programatically, so applications can print the same information portably if they like.
2020-10-30Clean up installed man pagesDavid Robillard5-7/+7
2020-10-30Simplify header namesDavid Robillard5-18/+18
2020-10-30Remove GL and GLU wrapper headersDavid Robillard3-82/+29
Include them in pugl_gl.h instead, to simplify things and unclutter the include directory.
2020-10-30Move C++ bindings to a separate directoryDavid Robillard6-1238/+0
This seemed messy and potentially misleading for what is fundamentally a C++ library. It also makes it possible to set separate clang-tidy and clang-format settings for each to avoid "tainting" the C settings, though currently the headers use the same checks.
2020-10-30Move implementation source files to a conventional src directoryDavid Robillard23-6996/+0
I think this attempt to be optionally header-only was misguided, particularly installing source code to the system include path. Typically anyone vendoring code just includes the repository and builds from there anyway. This commit moves all the implementation code to a typical src directory (Don't Be Weird). I still think there is some value in simple "inline" deployment, but that would be better achieved another way, like producing a single-file amalgamation that builds anywhere, ala sqlite.
2020-10-26Add Vulkan backendsDavid Robillard5-0/+798
2020-10-26Add missing includeDavid Robillard1-0/+1
2020-10-26Don't send expose events when window is minimizedDavid Robillard1-1/+5
2020-10-24Replace live resize with loop eventsDavid Robillard7-28/+67
This allows the application to control how recursive loops are handled rather than have Pugl impose behavior which can get in the way. For example, an application may not want to continuously animate while being resized, or set up its rendering differently in this situation. For example, with Vulkan, setting up a different swapchain can be necessary for smooth performance while live resizing on Windows, and Pugl has no ability to do this. I think it was a mistake to add this timer to Pugl itself, because it was always a bit of a leaky abstraction, and not very appropriate for a library that is supposed to be a thin abstraction layer. Though it almost seemed like things ran as usual while resizing on Windows and MacOS, the main event loop being stalled can be confusing, and there was no way to detect this. This way, applications must explicitly handle this situation and can implement the behavior they want without Pugl getting in the way. This also simplifies the Pugl implementation a bit, which is always nice.
2020-10-24Fix documentation typoDavid Robillard1-1/+1
2020-10-24Use single-line doc comments where possibleDavid Robillard1-90/+30
2020-10-22Resurrect puglEnterContext() and puglLeaveContext()David Robillard2-49/+34
Even though loading is now better handled with create events, there are still situations with OpenGL where it's difficult to avoid explicitly entering and leaving the context. So, resurrect these functions, but remove the drawing parameter to make it clear that they must never be used for drawing. This breaks the deprecated API since the drawing parameter would be inappropriate for the stable API, and a decent alternative name isn't available.
2020-10-21Add noexcept annotations to C++ Wrapper base classDavid Robillard1-6/+6
2020-10-21Add timer methods to C++ wrapperDavid Robillard1-0/+12
2020-10-21Make backend function wrappers noexceptDavid Robillard3-4/+4
2020-10-21Simplify documentation structureDavid Robillard5-44/+22
2020-10-21Fix outdated function reference in Cairo documentationDavid Robillard1-1/+1
2020-10-21Cleanup: Always put return types on their own lineDavid Robillard5-13/+26
2020-10-21Cleanup: Sort includesDavid Robillard1-1/+2
2020-10-21Cleanup: Use conventional style for ObjC methodsDavid Robillard5-67/+66
2020-10-21Cleanup: Use consistent style for preprocessor conditionalsDavid Robillard2-3/+3
2020-10-21Fix clang-tidy issues in Windows codeDavid Robillard3-33/+27
2020-10-21Fix building with clang on WindowsDavid Robillard1-1/+1
2020-10-21Use separate clang-tidy configurations in different directoriesDavid Robillard2-0/+17
This allows more fine-grained control. In particular, it prevents mistaked from creeping in to the public headers or core implementation because of warnings that are disabled for the tests and examples. This keeps the code that is used in other projects as clean as possible.
2020-10-21Add missing include guardsDavid Robillard5-0/+25
2020-10-21Add missing includesDavid Robillard1-0/+3
2020-10-21Move includes to a separate directoryDavid Robillard30-0/+9413
This is more conventional and directories named "include" are specially understood by some tooling like clang-tidy.