Age | Commit message (Collapse) | Author | Files | Lines |
|
Stub backends were a dependency of other backends to allow some code reuse.
However, that can cause conflicting symbols if multiple backends are linked
into the same binary, which should be possible.
To avoid this, move the shared code into the platform implementation, and
export those symbols so that backends can use them. This adds some semi-public
platform-specific API that can only be used by backends included with pugl.
They are undocumented, subject to change at any time without a corresponding
version change, and may not be used by third parties (for example by custom
backends in an application).
|
|
|
|
|
|
X11 Window managers set WM_STATE to notify about minimization, often without
sending core X visibility events (which seems odd to me, but that's what Gnome
does anyway). So, implement this protocol and send map/unmap events to the
view, and adjust the Windows implementation to do the same for consistency
across all platforms.
|
|
I think the conditional here was because this is typical when the view is
embedded, but window manager behaviour is all over the place and this is
something we want to always guarantee.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I don't think there is any UB actually happening here, but some of these were
casting to a pointer of a larger type, which is problematic. Unfortunately, it
makes for quite a bit of tedious verbosity, but I don't see a decent way around
that in C99.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
This allows puglCreateSurface() to be used with some other loader, or when
linking to Vulkan at compile time.
|
|
These libc-specific warnings are a new level, even for LLVM. Using an opt-out
style for this is probably not going to last.
|
|
This fixes an issue where the default frame position would be set based on the
screen size for child windows. This went unnoticed so far because most
plugins, like pugl_embed_demo, explicitly set the frame and so avoided this
code path.
Also generally tidy up puglRealize() along the way to make it a bit more
readable.
|
|
Fun with union punning. The different sizes mean that stuff on the stack could
be copied to the destination event. I don't think this would cause a concrete
issue (the contents of the event past the expose are irrelevant) but asan quite
reasonably has a problem with it.
|
|
It's a nightmare trying to get this thing to check everything.
|
|
|
|
|
|
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.
|
|
|
|
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.
|