aboutsummaryrefslogtreecommitdiffstats
path: root/examples
AgeCommit message (Collapse)AuthorFilesLines
2020-10-28Add Vulkan demosDavid Robillard4-0/+5342
2020-10-24Replace live resize with loop eventsDavid Robillard1-2/+17
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-21Fix shader demo arguments to allow running at maximum framerateDavid Robillard1-2/+3
2020-10-21Use separate clang-tidy configurations in different directoriesDavid Robillard1-0/+20
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 Robillard4-3/+18
2020-10-19Cleanup: Fix IWYU warningsDavid Robillard3-5/+1
2020-10-16Windows: Fix cursor when leaving client areaJordan Halase1-0/+3
This resets the cursor when the pointer moves into the title bar.
2020-10-16Set a default size in pugl_print_eventsJordan Halase1-0/+1
2020-10-16Show errors in example programs consistentlyDavid Robillard1-2/+3
2020-10-14Explicitly declare all special methodsDavid Robillard1-0/+8
2020-10-04Move cube vertex data to the file where it is actually usedDavid Robillard2-49/+49
2020-10-04Use refresh rate to better drive example event loopDavid Robillard1-2/+33
2020-10-04Print all view hints in shader demo and hint testsDavid Robillard1-0/+1
2020-10-03Change FPS print format in demos for consistency with other outputDavid Robillard1-3/+3
2020-07-05Improve struct packingDavid Robillard5-8/+8
Unfortunately there is no warning like Wpadded but only for internal padding, so that can't be turned on, but if there was, after this commit the build would be clean with it. Maybe some day...
2020-06-13Add puglSetCursor()Jean Pierre Cimalando1-0/+171
2020-06-13Cleanup: Fix implicit conversion warnings with clangDavid Robillard2-3/+4
2020-06-13Cleanup: Fix uninitialised variablesDavid Robillard2-5/+5
2020-06-08Windows: Fix maximum sizeDavid Robillard1-0/+1
2020-05-16Add default and maximum sizeDavid Robillard5-10/+8
2020-05-16Use line comments where appropriateDavid Robillard1-1/+1
2020-05-16Use email address in copyright headersDavid Robillard10-10/+10
Not really sure why I used a web link here (maybe because it's more stable), but this is more conventional.
2020-05-16Fix file documentationDavid Robillard7-7/+14
2020-04-22C++ Demo: Fix sync optionDavid Robillard1-1/+1
2020-04-22C++ Demo: Fix help optionDavid Robillard1-0/+4
2020-04-06Implement puglSetTransientFor() for Mac and WindowsDavid Robillard1-4/+9
2020-04-04Shader Demo: Support both GL 3 and 4David Robillard1-10/+33
2020-04-04Shader Demo: Use a UBODavid Robillard1-7/+16
2020-04-04Shader Demo: Factor out version-dependent GLSL headerDavid Robillard2-9/+16
2020-04-04Shader Demo: Factor out animated rectangle definitionsDavid Robillard2-44/+84
2020-04-04Shader Demo: Explicitly set up alpha blendingDavid Robillard1-1/+2
2020-04-03Rewrite C++ bindingsDavid Robillard1-0/+141
2020-04-02Strengthen warningsDavid Robillard4-22/+34
2020-04-01Cleanup: Fix mismatched file commentsDavid Robillard1-1/+1
2020-04-01Replace puglShowWindow() with puglRealize()David Robillard5-9/+15
2020-03-31GL3 Demo: Fix conversion warningsDavid Robillard1-5/+7
2020-03-17Use clearer names for pointer eventsDavid Robillard3-9/+9
These old "notify" names are a smell from X11 which is a bit strange and inconsistent here, since nearly everything is a "notification" of sorts. I think the new names here are much more clear since they are consistent with the keyboard focus events.
2020-03-16Embed Demo: Add timer to occasionally reverse spin directionDavid Robillard1-2/+10
2020-03-16Window Demo: Only redisplay on update when running continuouslyDavid Robillard1-1/+3
2020-03-15Unify event loop functions as puglUpdate()David Robillard5-31/+30
The previous separation between polling and dispatching was a lie, especially on MacOS where it is impossible to only poll for events without dispatching anything. Providing such an API is misleading, and problematic in various other ways. So, merge them into a single puglUpdate() function which can do the right thing on all platforms. This also adds the behaviour of actually processing all events in the given time interval, which is almost always what clients actually want to do when using a positive timeout (naively doing this before caused terrible input lag).
2020-03-15Add type and flags to worldDavid Robillard5-5/+5
Unfortunately this is an API break, but there's no reasonable way to deprecate the old function and this is required for things to work correctly. The type will be used in following commits to tick the main loop and dispatch events correctly for either case.
2020-03-15Print events in Cairo demoDavid Robillard1-0/+2
2020-03-15Remove static data from Cairo demoDavid Robillard1-44/+56
2020-03-13Strengthen warningsDavid Robillard3-6/+0
2020-03-09GL3 Demo: Set up and tear down GL on PUGL_CREATE and PUGL_DESTROYDavid Robillard1-19/+17
This eliminates the use of puglEnterContext().
2020-03-09GL3 Demo: Factor out GL setup and teardownDavid Robillard1-69/+102
2020-03-09Window Demo: Fix updating when not runnning continuouslyDavid Robillard2-7/+17
2020-03-09Cleanup: Remove unnecessary includesDavid Robillard1-1/+0
Apparently glxext.h is always included in glx.h on modern systems. The window demo does not actually use any GL functions directly since they are all factored out.
2020-03-08Add vsync command line options to demosDavid Robillard3-4/+4
2020-03-08Embed Demo: Simplify FPS counterDavid Robillard1-3/+3
What we're really interested in here is how often the main loop iteration runs.