Age | Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
This is more conventional and directories named "include" are specially
understood by some tooling like clang-tidy.
|