aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2023-01-11Guard against required hints explicitly being set to PUGL_DONT_CAREDavid Robillard1-0/+5
2023-01-11Clean up puglRealize() implementationsDavid Robillard4-27/+18
2023-01-11Test redisplay outside of event handlersDavid Robillard1-1/+10
2023-01-11X11: Fix puglPostRedisplay() outside of event handlersDavid Robillard1-2/+4
2023-01-11X11: Make puglSendEvent() gracefully handle unrealized viewsDavid Robillard1-0/+3
2023-01-11Add missing export for puglGetBackend()David Robillard1-0/+1
2023-01-11Fix coverage of puglStrerror testDavid Robillard1-1/+1
2023-01-11Avoid running clipboard tests in parallelDavid Robillard1-2/+20
Since the clipboard is a globally shared resource, running clipboard tests in parallel is likely to fail because one test can smash the state expected by another.
2023-01-11Reduce duplicated codeDavid Robillard1-11/+1
2023-01-11Relax timer test slightly and make it run for less timeDavid Robillard1-2/+2
2023-01-11Spread tests around the screenDavid Robillard16-19/+34
This makes it unlikely for tests to be completely obscured, which should hopefully make things a bit more consistent and reliable, especially when running all of the tests in parallel. It also makes things a bit less visually confusing.
2023-01-11X11: Avoid potentially unnecessary allocation in Vulkan backendDavid Robillard1-8/+12
2023-01-11X11: Fix positioning of top-level windows with decorationsDavid Robillard2-8/+68
2023-01-11Remove cached frame from viewDavid Robillard10-214/+364
This was just a source of ambiguity and bugs, since it represented different things at different times and could become stale. Redundant data is always trouble, so eliminate it, leaving just two positions/sizes: the defaults (used when the view is not yet realized), and the last configuration.
2023-01-11Fix checks for invalid view positionsDavid Robillard3-3/+3
2023-01-11Center windows on their transient parent where possibleDavid Robillard3-16/+56
This is only really relevant in practice on MacOS and Windows. On X11, the window manager places new windows where it pleases.
2023-01-11Raise the initial display of example windowsDavid Robillard9-11/+11
This is the standard behaviour for applications.
2023-01-10Add PUGL_CURSOR_ALL_SCROLLDavid Robillard6-4/+9
2023-01-10Add missing cursors to C++ bindingsDavid Robillard1-8/+12
2023-01-10Fix inconsistent naming conventionDavid Robillard1-5/+5
2023-01-10Windows: Make puglGetScaleFactor always return a reasonable valueDavid Robillard1-4/+24
This guesses the likely scale factor when the view hasn't been realized (and so there's no real window to get information for). It may still be wrong for multiple display systems, but will always return some scale factor that "exists" on the system, and should always be correct when there's only one display.
2023-01-09Raise test windows initiallyDavid Robillard11-12/+12
This seems to make thing a bit more reliable, and matches what was happening before the addition of more precise show commands.
2023-01-08Fix Doxygen errorsDavid Robillard2-5/+7
2023-01-08Add support for OpenGL ES 3.2 in pugl_shader_demoDavid Robillard10-39/+88
2023-01-08Update example GLAD loader and add OpenGL ES 3.2David Robillard2-9/+1280
2023-01-08Prepare OpenGL context flags for OpenGL ES supportDavid Robillard15-39/+59
2023-01-08Windows: Fix OpenGL profile hint interpretationDavid Robillard1-2/+2
2023-01-08Use ensureHint pattern everywhereDavid Robillard6-60/+48
2023-01-08Add PUGL_SAMPLE_BUFFERS hintDavid Robillard8-14/+30
Towards a more direct and explicit mapping to platform hints, and more consistent behaviour across platforms. OpenGL applications are generally expected to be explicit about hints like this.
2023-01-08Add missing default hintDavid Robillard1-0/+1
2023-01-08Gracefully handle out of range hintsDavid Robillard2-3/+17
2023-01-08Update READMEDavid Robillard1-2/+6
2023-01-08Remove branch cloneDavid Robillard1-2/+0
2023-01-08X11: Add support for _NET_WM_PING protocolDavid Robillard2-14/+56
This is mainly used to allow the window manager to close locked or otherwise misbehaving windows. The PID and hostname properties are both required to properly support this, but may also be used for other things.
2023-01-08Add support for raising windowsDavid Robillard29-37/+119
2023-01-07Replace map/unmap events with more expressive configure eventsDavid Robillard14-112/+51
2023-01-07Add support for special view types and stylesDavid Robillard16-144/+961
2023-01-07Support closing views by sending a close eventDavid Robillard4-4/+37
2023-01-07Rename create/destroy events to realize/unrealizeDavid Robillard16-100/+99
As evidence that this was confusing, the documentation for these was an outright lie, and I've burned quite a bit of time in the past few days trying to rework things based around that flawed understanding. These names make it clear what these events actually are. If we need actual create/destroy events with a broader scope, they'll have to be added, but I suspect those aren't actually useful anyway.
2023-01-07Replace visible flag with a more descriptive view "stage"David Robillard5-19/+46
2023-01-07MacOS: Consistently use the same flags for ObjC and ObjC++David Robillard3-6/+13
The implementation only uses ObjC, but this is mistake-prone, it's better to just have things set up properly for all of the languages that are present in the build at all.
2023-01-06MacOS: Fix repeated realize/unrealizeDavid Robillard1-1/+0
2023-01-04Add puglUnrealize()David Robillard7-41/+157
2023-01-04Clean up licensing metadataDavid Robillard33-7/+103
2023-01-04Improve reliability of remote copy/paste testDavid Robillard1-0/+2
Things tend to stall when the two windows exactly overlap each other, which is itself probably a bug of some sort, but that's an unusual situation and not what this test is about.
2023-01-03Use globally unique names for documentation groupsDavid Robillard13-43/+43
This becomes important when the documentation is included in larger projects.
2023-01-02Reorganize documentationDavid Robillard2-129/+180
2023-01-02Move attributes to a separate headerDavid Robillard4-46/+63
2023-01-02X11: Create Cairo drawing surface with precisely the needed sizeDavid Robillard1-12/+11
This decouples drawing from the view frame, which can be out of sync with the drawing that is currently happening.
2023-01-02X11: Factor out getCurrentConfigurationDavid Robillard1-11/+18