changelog
    
    
    - Wed, 29 Oct 2025 22:59:23 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 29 Oct 2025 22:59:23 +0100] rev 284
 
    - add version requirement for UCX
 
    - Tue, 28 Oct 2025 22:04:05 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Oct 2025 22:04:05 +0100] rev 283
 
    - update to newest UCX 3.2 snapshot
 
    - Tue, 28 Oct 2025 22:03:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 28 Oct 2025 22:03:06 +0100] rev 282
 
    - fix that dependencies for tools are always checked
 
    - Tue, 14 Oct 2025 17:09:27 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 14 Oct 2025 17:09:27 +0200] rev 281
 
    - fix style of the descriptions for the helptext
 
    - Mon, 13 Oct 2025 21:37:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 13 Oct 2025 21:37:42 +0200] rev 280
 
    - start a sub-project to implement a texture atlas editor
 
    - Thu, 09 Oct 2025 19:22:21 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 09 Oct 2025 19:22:21 +0200] rev 279
 
    - do not use different vocabulary (enable/disable vs. pause/unpause) for the behavior's enabled-state
 
    - Thu, 09 Oct 2025 19:15:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 09 Oct 2025 19:15:02 +0200] rev 278
 
    - make behaviors aware of being unpaused
 
    - Thu, 09 Oct 2025 19:03:32 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 09 Oct 2025 19:03:32 +0200] rev 277
 
    - add asc_behavior_find()
 
    - Fri, 26 Sep 2025 22:44:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 26 Sep 2025 22:44:42 +0200] rev 276
 
    - use the new kv_list from UCX for the behavior map
 
    - Sat, 23 Aug 2025 21:01:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 23 Aug 2025 21:01:41 +0200] rev 275
 
    - move game over text to the UI scene
 
    - Fri, 22 Aug 2025 23:27:36 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 22 Aug 2025 23:27:36 +0200] rev 274
 
    - move the player's life "controller" to a behavior
 
    - Thu, 21 Aug 2025 22:13:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 21 Aug 2025 22:13:51 +0200] rev 273
 
    - add random spawn positions
 
    - Wed, 20 Aug 2025 23:51:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 20 Aug 2025 23:51:40 +0200] rev 272
 
    - move player controls into a behavior
 
    - Wed, 20 Aug 2025 23:45:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 20 Aug 2025 23:45:23 +0200] rev 271
 
    - move debug output regarding clearing the shader registry to the respective function
 
    - Tue, 19 Aug 2025 18:51:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 19 Aug 2025 18:51:46 +0200] rev 270
 
    - further improve names and docu of the uniform location init functions
 
    - Tue, 19 Aug 2025 18:26:20 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 19 Aug 2025 18:26:20 +0200] rev 269
 
    - improve names of asc_shader_init_uniform... function/macro
 
    - Tue, 19 Aug 2025 18:23:47 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 19 Aug 2025 18:23:47 +0200] rev 268
 
    - behaviors can now be paused while the node is hidden
 
    - Tue, 19 Aug 2025 18:05:35 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 19 Aug 2025 18:05:35 +0200] rev 267
 
    - rename test folder to demo
 
    - Mon, 18 Aug 2025 23:11:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 18 Aug 2025 23:11:50 +0200] rev 266
 
    - convert behavior list to a behavior map
prepares the by-name lookup functions for behaviors 
    - Sat, 16 Aug 2025 22:59:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 16 Aug 2025 22:59:49 +0200] rev 265
 
    - add simple game over screen
 
    - Wed, 13 Aug 2025 23:55:55 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 13 Aug 2025 23:55:55 +0200] rev 264
 
    - fix that the window would take a little more than the full height not giving space for potential docks on the desktop
 
    - Wed, 13 Aug 2025 23:49:39 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 13 Aug 2025 23:49:39 +0200] rev 263
 
    - fix that backdrop texture scale was not inverting the ui scale
 
    - Tue, 12 Aug 2025 21:04:59 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 12 Aug 2025 21:04:59 +0200] rev 262
 
    - update viewports of cameras before executing behaviors, so that the new viewport information is available in the behavior functions
 
    - Sat, 09 Aug 2025 14:36:39 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 09 Aug 2025 14:36:39 +0200] rev 261
 
    - fix incorrect file/line information when catching GL errors
 
    - Fri, 08 Aug 2025 20:51:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 08 Aug 2025 20:51:19 +0200] rev 260
 
    - start giving the game code more structure
 
    - Fri, 08 Aug 2025 20:51:14 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 08 Aug 2025 20:51:14 +0200] rev 259
 
    - add show/hide functions for scene nodes
 
    - Fri, 08 Aug 2025 20:51:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 08 Aug 2025 20:51:02 +0200] rev 258
 
    - add macro to toggle flags
 
    - Thu, 07 Aug 2025 22:40:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 07 Aug 2025 22:40:41 +0200] rev 257
 
    - remove AscWindowSettings struct
 
    - Wed, 06 Aug 2025 00:37:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Aug 2025 00:37:01 +0200] rev 256
 
    - remove the asc_col4i datatype in favor of a unified asc_color type
and also adds some min and max functions 
    - Tue, 05 Aug 2025 20:38:11 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Aug 2025 20:38:11 +0200] rev 255
 
    - fix wrong text length stored in asc_text_printf()
 
    - Tue, 05 Aug 2025 20:06:35 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Aug 2025 20:06:35 +0200] rev 254
 
    - update compilation dependencies
 
    - Tue, 05 Aug 2025 20:00:24 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Aug 2025 20:00:24 +0200] rev 253
 
    - upgrade to SDL 3
 
    - Tue, 05 Aug 2025 16:53:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Aug 2025 16:53:25 +0200] rev 252
 
    - add missing documentation for some rectangle creation parameters
 
    - Tue, 05 Aug 2025 16:48:04 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Aug 2025 16:48:04 +0200] rev 251
 
    - fix that the origin was not applied in asc_rectangle_set_bounds()
 
    - Tue, 05 Aug 2025 16:45:14 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 05 Aug 2025 16:45:14 +0200] rev 250
 
    - remove "bounds" creation argument for rectangles
we will keep the asc_rectangle_set_bounds() function, though 
    - Mon, 04 Aug 2025 23:19:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 04 Aug 2025 23:19:06 +0200] rev 249
 
    - remove TODO about queuing movement commands
with the new grid size and player speed this is not an issue anymore 
    - Mon, 04 Aug 2025 23:12:22 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 04 Aug 2025 23:12:22 +0200] rev 248
 
    - rename spaceship variable to player
 
    - Mon, 04 Aug 2025 23:07:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 04 Aug 2025 23:07:06 +0200] rev 247
 
    - add player's trace and removes the origin offsets from the game field's tiles
 
    - Mon, 04 Aug 2025 23:06:37 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 04 Aug 2025 23:06:37 +0200] rev 246
 
    - fix missing parenthesis in VEC macros
 
    - Sun, 03 Aug 2025 22:15:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 03 Aug 2025 22:15:25 +0200] rev 245
 
    - add a simple struct for the game field that may be extended later
 
    - Sat, 02 Aug 2025 21:43:39 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 02 Aug 2025 21:43:39 +0200] rev 244
 
    - add a frame to the main scene + implement the necessary asc_rectangle_set_bounds() function
 
    - Sat, 02 Aug 2025 15:45:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 02 Aug 2025 15:45:43 +0200] rev 243
 
    - fix that using mipmap filtering did not generate the necessary mipmaps
 
    - Sat, 02 Aug 2025 15:19:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 02 Aug 2025 15:19:06 +0200] rev 242
 
    - add player colors
 
    - Sat, 02 Aug 2025 14:58:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 02 Aug 2025 14:58:30 +0200] rev 241
 
    - add null safety in case a sprite is created without texture parameters
 
    - Sat, 02 Aug 2025 13:20:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 02 Aug 2025 13:20:51 +0200] rev 240
 
    - redesign game field and make it larger (and the player faster)
 
    - Sat, 02 Aug 2025 13:07:28 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 02 Aug 2025 13:07:28 +0200] rev 239
 
    - remove the possibility of non-lazy-initializable shader programs
it is still possible to pre-initialize them, but whenever they are used,
they should be re-created when they don't exist anymore 
    - Fri, 01 Aug 2025 18:19:33 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 01 Aug 2025 18:19:33 +0200] rev 238
 
    - make the default window scaling and positioning screen resolution dependent
 
    - Fri, 01 Aug 2025 18:18:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 01 Aug 2025 18:18:57 +0200] rev 237
 
    - add functions to change the window position
 
    - Fri, 01 Aug 2025 17:58:28 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 01 Aug 2025 17:58:28 +0200] rev 236
 
    - update player texture
 
    - Fri, 01 Aug 2025 17:57:39 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 01 Aug 2025 17:57:39 +0200] rev 235
 
    - make asc_ui_scale_auto() normalized with Full HD as 100%
 
    - Thu, 31 Jul 2025 22:14:27 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 31 Jul 2025 22:14:27 +0200] rev 234
 
    - improve structure of the game code and add a function to set the player position
 
    - Thu, 31 Jul 2025 20:40:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 31 Jul 2025 20:40:48 +0200] rev 233
 
    - handle the edge-case when a viewport vanishes
 
    - Wed, 30 Jul 2025 00:12:13 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 30 Jul 2025 00:12:13 +0200] rev 232
 
    - improve the conditional setting of flags
 
    - Mon, 28 Jul 2025 23:11:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 28 Jul 2025 23:11:30 +0200] rev 231
 
    - make initial window size depend on UI scaling factor
 
    - Sun, 27 Jul 2025 23:54:33 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 27 Jul 2025 23:54:33 +0200] rev 230
 
    - replace ugly backdrop texture
 
    - Sun, 27 Jul 2025 23:44:14 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 27 Jul 2025 23:44:14 +0200] rev 229
 
    - first idea of what the main scene could look like
 
    - Sun, 27 Jul 2025 23:34:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 27 Jul 2025 23:34:19 +0200] rev 228
 
    - add asc_create_flags() utility function
 
    - Sat, 26 Jul 2025 21:13:05 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 26 Jul 2025 21:13:05 +0200] rev 227
 
    - simplify build and copy assets to build dir
demo programs can then be run directly from the build dir 
    - Fri, 25 Jul 2025 19:19:54 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 25 Jul 2025 19:19:54 +0200] rev 226
 
    - simplify how pre-defined shader IDs work
 
    - Fri, 25 Jul 2025 18:58:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 25 Jul 2025 18:58:50 +0200] rev 225
 
    - prevent attempts to load a shader again that already failed before
 
    - Fri, 25 Jul 2025 18:54:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 25 Jul 2025 18:54:51 +0200] rev 224
 
    - fix broken nullptr handling in asc_shader_use() - fixes #696
 
    - Fri, 25 Jul 2025 18:50:36 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 25 Jul 2025 18:50:36 +0200] rev 223
 
    - clean up the messy shader code specification
 
    - Thu, 24 Jul 2025 20:58:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 24 Jul 2025 20:58:00 +0200] rev 222
 
    - vastly deduplicate shader creation code
 
    - Wed, 23 Jul 2025 00:27:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 23 Jul 2025 00:27:46 +0200] rev 221
 
    - slightly improve error handling
 
    - Tue, 22 Jul 2025 21:38:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 22 Jul 2025 21:38:02 +0200] rev 220
 
    - resolve several minor TODOs
 
    - Tue, 22 Jul 2025 20:57:13 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 22 Jul 2025 20:57:13 +0200] rev 219
 
    - remove outdated TODO comments
 
    - Tue, 22 Jul 2025 20:50:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 22 Jul 2025 20:50:50 +0200] rev 218
 
    - add more vector arithmetic functions
 
    - Mon, 21 Jul 2025 21:28:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 21 Jul 2025 21:28:34 +0200] rev 217
 
    - improve snap-to-grid-movement
 
    - Sun, 20 Jul 2025 23:31:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Jul 2025 23:31:40 +0200] rev 216
 
    - snap the movement to the grid
 
    - Sat, 19 Jul 2025 21:29:10 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Jul 2025 21:29:10 +0200] rev 215
 
    - use new point-of-origin for 2d primitives
 
    - Fri, 18 Jul 2025 18:01:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 18 Jul 2025 18:01:41 +0200] rev 214
 
    - remove global active font and color (also fixes #693)
 
    - Thu, 17 Jul 2025 20:26:39 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Jul 2025 20:26:39 +0200] rev 213
 
    - add a tiled game field
 
    - Thu, 17 Jul 2025 20:15:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Jul 2025 20:15:56 +0200] rev 212
 
    - fix wrong allocation sizes when allocating the shader info structs
 
    - Thu, 17 Jul 2025 20:13:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Jul 2025 20:13:25 +0200] rev 211
 
    - fix that empty nodes fail to recalculate world transforms in the scene graph
 
    - Thu, 17 Jul 2025 19:50:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Jul 2025 19:50:34 +0200] rev 210
 
    - improve asc_scene_node_allocate_data()
 
    - Thu, 17 Jul 2025 19:45:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Jul 2025 19:45:44 +0200] rev 209
 
    - fix accidental overwrite of the update flag when creating text
 
    - Thu, 17 Jul 2025 19:44:22 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 17 Jul 2025 19:44:22 +0200] rev 208
 
    - improve OpenGL error handling
 
    - Wed, 16 Jul 2025 23:27:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 16 Jul 2025 23:27:34 +0200] rev 207
 
    - add asc_scene_node_init() - fixes #695
 
    - Mon, 14 Jul 2025 21:56:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 14 Jul 2025 21:56:53 +0200] rev 206
 
    - complete basic movement
 
    - Sun, 13 Jul 2025 17:17:15 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Jul 2025 17:17:15 +0200] rev 205
 
    - hack a quick example for both rotation directions
 
    - Sun, 13 Jul 2025 15:09:04 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Jul 2025 15:09:04 +0200] rev 204
 
    - rework how transformations work to allow rotations around a point of origin
 
    - Sun, 13 Jul 2025 14:22:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Jul 2025 14:22:40 +0200] rev 203
 
    - add function to apply a matrix to a vector
 
    - Sun, 13 Jul 2025 13:48:13 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Jul 2025 13:48:13 +0200] rev 202
 
    - fix wrong row/column access in asc_mat4f_mul()
 
    - Sun, 13 Jul 2025 13:35:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 13 Jul 2025 13:35:51 +0200] rev 201
 
    - add functions for sin() and cos() with increased precision when the return value is supposed to be zero
 
    - Sat, 12 Jul 2025 23:05:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 12 Jul 2025 23:05:43 +0200] rev 200
 
    - add rotation functions, but rotation with special point of origin is still broken
 
    - Sat, 12 Jul 2025 22:28:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 12 Jul 2025 22:28:30 +0200] rev 199
 
    - add conversion functions between degrees and radians
 
    - Sat, 12 Jul 2025 22:06:24 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 12 Jul 2025 22:06:24 +0200] rev 198
 
    - remove ui subdir in includes
it is not really necessary and without it,
we can have much cleaner includes 
    - Sat, 12 Jul 2025 21:49:12 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 12 Jul 2025 21:49:12 +0200] rev 197
 
    - add log message when removing a behavior
 
    - Fri, 11 Jul 2025 00:48:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 11 Jul 2025 00:48:08 +0200] rev 196
 
    - remove dependency to AscSprite from AscText
 
    - Thu, 10 Jul 2025 22:19:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 10 Jul 2025 22:19:48 +0200] rev 195
 
    - improve signature of asc_sprite_set_size()
 
    - Thu, 10 Jul 2025 22:13:39 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 10 Jul 2025 22:13:39 +0200] rev 194
 
    - improve signatures of other text functions and make them linkable symbols
 
    - Wed, 09 Jul 2025 22:30:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 09 Jul 2025 22:30:52 +0200] rev 193
 
    - improves signature of asc_text_printf() and adds documentation
 
    - Tue, 08 Jul 2025 19:55:55 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 08 Jul 2025 19:55:55 +0200] rev 192
 
    - rename asc_memcmp() to asc_memcmpc() to avoid confusion with regular memcmp()
 
    - Tue, 08 Jul 2025 19:32:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 08 Jul 2025 19:32:31 +0200] rev 191
 
    - optimize asc_memcmp() by enabling the compiler to use SIMD instructions
 
    - Tue, 08 Jul 2025 17:45:33 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 08 Jul 2025 17:45:33 +0200] rev 190
 
    - remove functions that construct a transform from position/rotation/scale
 
    - Mon, 07 Jul 2025 22:51:06 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 07 Jul 2025 22:51:06 +0200] rev 189
 
    - remove separate vectors for position, rotation, scale from scene node
 
    - Mon, 07 Jul 2025 22:41:48 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 07 Jul 2025 22:41:48 +0200] rev 188
 
    - enclose GCC attribute with an ifdef
 
    - Sun, 06 Jul 2025 18:57:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Jul 2025 18:57:43 +0200] rev 187
 
    - make asc_clamp() generic and support all common types
 
    - Sun, 06 Jul 2025 18:49:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Jul 2025 18:49:44 +0200] rev 186
 
    - rename asc_recti to just asc_rect (there won't be an asc_rectu)
 
    - Sun, 06 Jul 2025 18:49:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Jul 2025 18:49:08 +0200] rev 185
 
    - fix make dependencies for behavior.o
 
    - Sun, 06 Jul 2025 18:47:28 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Jul 2025 18:47:28 +0200] rev 184
 
    - add asc_recti_center()
 
    - Sun, 06 Jul 2025 18:45:47 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Jul 2025 18:45:47 +0200] rev 183
 
    - remove test behavior for score counter
 
    - Sat, 05 Jul 2025 23:11:36 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 05 Jul 2025 23:11:36 +0200] rev 182
 
    - add asc_behavior_get_name()
 
    - Sat, 05 Jul 2025 23:08:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 05 Jul 2025 23:08:56 +0200] rev 181
 
    - remove unnecessary second parameter from asc_util_gen_name()
 
    - Sat, 05 Jul 2025 23:06:07 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 05 Jul 2025 23:06:07 +0200] rev 180
 
    - add names to behaviors
 
    - Fri, 04 Jul 2025 23:36:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Jul 2025 23:36:40 +0200] rev 179
 
    - fix formatting of generated names of scene nodes
 
    - Fri, 04 Jul 2025 23:35:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Jul 2025 23:35:41 +0200] rev 178
 
    - create utility to generate names - resolves #694
 
    - Fri, 04 Jul 2025 23:23:29 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 04 Jul 2025 23:23:29 +0200] rev 177
 
    - fix typo in ASC_FLAG_INITIALIZED
 
    - Thu, 03 Jul 2025 23:01:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 03 Jul 2025 23:01:52 +0200] rev 176
 
    - add asc_behavior_remove()
 
    - Wed, 02 Jul 2025 23:55:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 02 Jul 2025 23:55:50 +0200] rev 175
 
    - improve macros in datatypes.h - fixes #692
 
    - Wed, 02 Jul 2025 23:21:17 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 02 Jul 2025 23:21:17 +0200] rev 174
 
    - resolve TODOs regarding input.h
a) mouse position must be integer, because it can be negative (though rarely)
b) we should not trade "access complexity" for space in the scancodes array 
    - Tue, 01 Jul 2025 20:28:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 01 Jul 2025 20:28:49 +0200] rev 173
 
    - add ellipsis shader - resolves #385
 
    - Tue, 01 Jul 2025 00:00:50 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 01 Jul 2025 00:00:50 +0200] rev 172
 
    - fix typo in struct name
 
    - Mon, 30 Jun 2025 23:59:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Jun 2025 23:59:30 +0200] rev 171
 
    - create prototype for creating ellipsis
 
    - Fri, 27 Jun 2025 22:30:17 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 27 Jun 2025 22:30:17 +0200] rev 170
 
    - optimize asc_col_itof()
 
    - Thu, 26 Jun 2025 21:43:22 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 26 Jun 2025 21:43:22 +0200] rev 169
 
    - improve "polymorphic" typing of shaders
 
    - Wed, 25 Jun 2025 21:58:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 25 Jun 2025 21:58:44 +0200] rev 168
 
    - add abstractions that allow removing dependencies to glew.h
 
    - Tue, 24 Jun 2025 20:21:38 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 24 Jun 2025 20:21:38 +0200] rev 167
 
    - add functions to upload common uniforms
 
    - Tue, 24 Jun 2025 20:09:47 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 24 Jun 2025 20:09:47 +0200] rev 166
 
    - update make dependencies
 
    - Mon, 23 Jun 2025 21:07:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 23 Jun 2025 21:07:31 +0200] rev 165
 
    - add frame_rate and frame_factor to context
fixes #685 
    - Mon, 23 Jun 2025 20:38:21 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 23 Jun 2025 20:38:21 +0200] rev 164
 
    - add TODO for reducing size of AscInput
 
    - Sun, 22 Jun 2025 11:36:37 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Jun 2025 11:36:37 +0200] rev 163
 
    - change NULL-safety for shaders s.t. errors are reported only once per shader
relates to #690 
    - Sun, 22 Jun 2025 11:15:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 22 Jun 2025 11:15:53 +0200] rev 162
 
    - improve NULL-safety - fixes #690
 
    - Sat, 21 Jun 2025 22:10:54 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 21 Jun 2025 22:10:54 +0200] rev 161
 
    - fix segfault when a shader does not compile
relates to #690 
    - Thu, 19 Jun 2025 19:22:07 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 19 Jun 2025 19:22:07 +0200] rev 160
 
    - improve the combination of shader preprocessor flags
 
    - Wed, 18 Jun 2025 23:55:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 18 Jun 2025 23:55:08 +0200] rev 159
 
    - add combination of filled rectangle with a border
 
    - Tue, 17 Jun 2025 20:11:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 17 Jun 2025 20:11:53 +0200] rev 158
 
    - implement rounded corners
for the time being this should be enough to close issue #384
later we add anti-aliasing, glow effects, etc. 
    - Tue, 17 Jun 2025 19:00:20 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 17 Jun 2025 19:00:20 +0200] rev 157
 
    - use functions instead of Boolean logic
 
    - Mon, 16 Jun 2025 20:58:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 16 Jun 2025 20:58:51 +0200] rev 156
 
    - change order of members in asc_behavior_create_args so that you can just specify the func without designators
 
    - Mon, 16 Jun 2025 20:24:47 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 16 Jun 2025 20:24:47 +0200] rev 155
 
    - add new ui.c where several UI functions are now moved to
 
    - Sun, 15 Jun 2025 21:02:29 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Jun 2025 21:02:29 +0200] rev 154
 
    - add auto-scaling of UI depending on screen resolution - resolves #682
 
    - Sun, 15 Jun 2025 19:50:51 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Jun 2025 19:50:51 +0200] rev 153
 
    - since we cannot pass NULL strings anyway, we do not need cxstring
 
    - Sun, 15 Jun 2025 19:46:12 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 15 Jun 2025 19:46:12 +0200] rev 152
 
    - fix that some drivers fail to compile a shader when a code line is NULL with length zero
 
    - Sat, 14 Jun 2025 14:02:16 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 14 Jun 2025 14:02:16 +0200] rev 151
 
    - adds first basic rectangle shader
partially solves issue #384 
    - Sat, 14 Jun 2025 12:38:37 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 14 Jun 2025 12:38:37 +0200] rev 150
 
    - make draw function dynamic
required to solve issue #384 
    - Sat, 14 Jun 2025 11:40:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 14 Jun 2025 11:40:40 +0200] rev 149
 
    - resolve east-west conflict
 
    - Fri, 13 Jun 2025 18:09:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 13 Jun 2025 18:09:49 +0200] rev 148
 
    - implement interval for behaviors - fixes #383
 
    - Fri, 13 Jun 2025 17:45:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 13 Jun 2025 17:45:19 +0200] rev 147
 
    - compute frame time before syncing to avoid div-by-zero in first frame
 
    - Fri, 13 Jun 2025 17:06:10 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 13 Jun 2025 17:06:10 +0200] rev 146
 
    - fix micro fail
 
    - Thu, 12 Jun 2025 22:44:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 12 Jun 2025 22:44:49 +0200] rev 145
 
    - consistent naming of structs and their typedefs
fixes #664 
    - Wed, 11 Jun 2025 23:38:55 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 11 Jun 2025 23:38:55 +0200] rev 144
 
    - do not try to use one distinct render group for each different shader
 
    - Tue, 10 Jun 2025 19:29:07 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 10 Jun 2025 19:29:07 +0200] rev 143
 
    - prepare implementation of primitives
 
    - Tue, 10 Jun 2025 19:17:21 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 10 Jun 2025 19:17:21 +0200] rev 142
 
    - fix includes in glcontext.c
 
    - Mon, 09 Jun 2025 14:02:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 09 Jun 2025 14:02:40 +0200] rev 141
 
    - implement edge-triggered key press/release
 
    - Mon, 09 Jun 2025 13:18:41 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 09 Jun 2025 13:18:41 +0200] rev 140
 
    - add dynamic reload of all shaders
 
    - Sun, 08 Jun 2025 14:58:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 08 Jun 2025 14:58:19 +0200] rev 139
 
    - refactor shader management - resolves #684
 
    - Sun, 08 Jun 2025 14:57:54 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 08 Jun 2025 14:57:54 +0200] rev 138
 
    - add option to enable ASan
 
    - Sun, 01 Jun 2025 16:35:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 01 Jun 2025 16:35:23 +0200] rev 137
 
    - remove pre-defined dummy textures by introducing conditional compilation for shaders
and by the way resolves #645 
    - Sun, 01 Jun 2025 14:59:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 01 Jun 2025 14:59:40 +0200] rev 136
 
    - fix incorrect flip of viewport y-axis
 
    - Sun, 01 Jun 2025 14:53:59 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 01 Jun 2025 14:53:59 +0200] rev 135
 
    - remove the need for a second pair of texture coordinates
 
    - Sun, 01 Jun 2025 14:33:58 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 01 Jun 2025 14:33:58 +0200] rev 134
 
    - rename parameters of asc_set_rotation()
 
    - Sun, 01 Jun 2025 14:28:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 01 Jun 2025 14:28:30 +0200] rev 133
 
    - add possibility to modify the node's transformation matrix
 
    - Sun, 01 Jun 2025 14:28:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 01 Jun 2025 14:28:00 +0200] rev 132
 
    - move flag macros to datatypes.h
 
    - Sat, 31 May 2025 22:39:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 31 May 2025 22:39:19 +0200] rev 131
 
    - remove outdated functions
 
    - Fri, 30 May 2025 19:37:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 30 May 2025 19:37:23 +0200] rev 130
 
    - add 2D affine transformations
 
    - Fri, 30 May 2025 19:32:13 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 30 May 2025 19:32:13 +0200] rev 129
 
    - add functions to scale vectors
 
    - Thu, 29 May 2025 11:34:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 29 May 2025 11:34:34 +0200] rev 128
 
    - add UI scaling
 
    - Thu, 29 May 2025 11:20:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 29 May 2025 11:20:49 +0200] rev 127
 
    - remove unused context variable
 
    - Wed, 28 May 2025 21:39:18 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 28 May 2025 21:39:18 +0200] rev 126
 
    - update to most recent ucx 3.2 preview
 
    - Tue, 20 May 2025 19:29:20 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 20 May 2025 19:29:20 +0200] rev 125
 
    - remove GCC attributes which are rarely helpful - resolves #663
 
    - Fri, 16 May 2025 08:04:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 16 May 2025 08:04:23 +0200] rev 124
 
    - add TODO for fixing color type conversion
 
    - Fri, 16 May 2025 07:55:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 16 May 2025 07:55:25 +0200] rev 123
 
    - make FPS counter readable
 
    - Fri, 16 May 2025 07:54:02 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 16 May 2025 07:54:02 +0200] rev 122
 
    - replace all stdlib malloc/free with UCX allocator
 
    - Wed, 14 May 2025 20:14:18 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 14 May 2025 20:14:18 +0200] rev 121
 
    - add viewport_clear flag to camera settings
 
    - Tue, 13 May 2025 20:27:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 13 May 2025 20:27:43 +0200] rev 120
 
    - replace backdrop with an incomplete idea of what it should be some day
 
    - Mon, 12 May 2025 21:14:22 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 12 May 2025 21:14:22 +0200] rev 119
 
    - fix texture scaling
 
    - Mon, 12 May 2025 21:13:24 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 12 May 2025 21:13:24 +0200] rev 118
 
    - apply texture scaling
 
    - Mon, 12 May 2025 20:51:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 12 May 2025 20:51:57 +0200] rev 117
 
    - implement texture scaling
 
    - Sun, 11 May 2025 14:51:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 11 May 2025 14:51:00 +0200] rev 116
 
    - replace scaling with correct mesh sizes
 
    - Sat, 10 May 2025 18:51:45 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 10 May 2025 18:51:45 +0200] rev 115
 
    - refactor rendering 1/3 - create new mesh structs
 
    - Sat, 10 May 2025 15:42:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 10 May 2025 15:42:56 +0200] rev 114
 
    - give them nodes names
 
    - Sat, 10 May 2025 15:06:47 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 10 May 2025 15:06:47 +0200] rev 113
 
    - change node's free function to a destroy function
 
    - Tue, 06 May 2025 23:04:54 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 06 May 2025 23:04:54 +0200] rev 112
 
    - extract execution of behaviors from draw function
fixes #646 
    - Tue, 06 May 2025 22:54:38 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 06 May 2025 22:54:38 +0200] rev 111
 
    - change naming convention for functions that are hidden behind macros
 
    - Mon, 05 May 2025 19:47:25 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 05 May 2025 19:47:25 +0200] rev 110
 
    - replace mempool with custom cleanup functions
 
    - Sun, 04 May 2025 21:50:13 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 04 May 2025 21:50:13 +0200] rev 109
 
    - use new UCX 3.2 cxListEmplace()
 
    - Sat, 03 May 2025 19:48:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 03 May 2025 19:48:57 +0200] rev 108
 
    - add AscBehavior - prepares resolution of issue #646
 
    - Sat, 03 May 2025 14:37:57 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 03 May 2025 14:37:57 +0200] rev 107
 
    - remove stdio include from error.h
 
    - Sat, 03 May 2025 14:30:56 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 03 May 2025 14:30:56 +0200] rev 106
 
    - bring back error.h to reduce compile dependencies
 
    - Sat, 03 May 2025 13:49:24 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 03 May 2025 13:49:24 +0200] rev 105
 
    - improve datatypes
 
    - Sat, 03 May 2025 13:30:04 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 03 May 2025 13:30:04 +0200] rev 104
 
    - fix wrong flags in toolchain.mk files after updating uwproj + add gcc config with extra warnings
 
    - Fri, 02 May 2025 19:27:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 02 May 2025 19:27:49 +0200] rev 103
 
    - update uwproj
 
    - Thu, 01 May 2025 15:26:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 01 May 2025 15:26:01 +0200] rev 102
 
    - remove separate depth attribute and use the z-coordinate instead
 
    - Tue, 29 Apr 2025 21:51:29 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 29 Apr 2025 21:51:29 +0200] rev 101
 
    - add backdrop scene
 
    - Mon, 28 Apr 2025 21:13:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 28 Apr 2025 21:13:01 +0200] rev 100
 
    - change asc_scene_init() to also request parameters for camera initialization
 
    - Sun, 27 Apr 2025 15:17:12 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 27 Apr 2025 15:17:12 +0200] rev 99
 
    - add aspect-ration independent rendering
 
    - Sun, 27 Apr 2025 13:27:27 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 27 Apr 2025 13:27:27 +0200] rev 98
 
    - add deploy target for the demo program
 
    - Fri, 25 Apr 2025 23:06:23 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 25 Apr 2025 23:06:23 +0200] rev 97
 
    - fix missing update_transform() call when creating a sprite
 
    - Fri, 25 Apr 2025 18:38:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 25 Apr 2025 18:38:08 +0200] rev 96
 
    - add scenes, but they don't draw yet
 
    - Thu, 24 Apr 2025 19:53:40 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 24 Apr 2025 19:53:40 +0200] rev 95
 
    - in preparation of more scenes, bring back AscScene struct
 
    - Thu, 24 Apr 2025 18:41:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 24 Apr 2025 18:41:42 +0200] rev 94
 
    - fix scene node flags defined in incorrect header
 
    - Wed, 23 Apr 2025 23:59:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 23 Apr 2025 23:59:34 +0200] rev 93
 
    - add memory pool to gl context
 
    - Wed, 23 Apr 2025 23:43:45 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 23 Apr 2025 23:43:45 +0200] rev 92
 
    - apply new logging macros
 
    - Tue, 22 Apr 2025 19:36:27 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 22 Apr 2025 19:36:27 +0200] rev 91
 
    - improve error.c functions
 
    - Mon, 21 Apr 2025 17:52:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 21 Apr 2025 17:52:01 +0200] rev 90
 
    - fix probably incorrect array access of struct members
 
    - Mon, 21 Apr 2025 17:27:33 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 21 Apr 2025 17:27:33 +0200] rev 89
 
    - use refcounted objects for textures instead of pass-by-value int structs
 
    - Sun, 20 Apr 2025 15:41:16 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 20 Apr 2025 15:41:16 +0200] rev 88
 
    - add support for 2d textures in sprite shader - fixes #386
 
    - Sat, 19 Apr 2025 19:30:46 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 19:30:46 +0200] rev 87
 
    - skip sprite rendering when there are no sprites in the scene
 
    - Sat, 19 Apr 2025 15:06:24 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 15:06:24 +0200] rev 86
 
    - make asset paths configurable
 
    - Sat, 19 Apr 2025 13:00:32 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 13:00:32 +0200] rev 85
 
    - fix debug output
 
    - Sat, 19 Apr 2025 12:54:49 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 12:54:49 +0200] rev 84
 
    - put snake test program into separate directory
 
    - Sat, 19 Apr 2025 12:18:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 12:18:43 +0200] rev 83
 
    - implement view matrix in sprite shader
 
    - Sat, 19 Apr 2025 11:42:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sat, 19 Apr 2025 11:42:53 +0200] rev 82
 
    - add generic mesh draw function and move sprite draw function to separate unit
 
    - Fri, 18 Apr 2025 20:13:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 18 Apr 2025 20:13:01 +0200] rev 81
 
    - create catch-all util for GL errors + refactors mesh creation
 
    - Fri, 18 Apr 2025 19:34:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 18 Apr 2025 19:34:31 +0200] rev 80
 
    - some minor improvements
 
    - Thu, 20 Mar 2025 20:36:09 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 20 Mar 2025 20:36:09 +0100] rev 79
 
    - auto-extend buffer when loading shader code
 
    - Wed, 19 Mar 2025 22:43:37 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 19 Mar 2025 22:43:37 +0100] rev 78
 
    - go back to reading shader code from files
apart from using a nice C23 feature there is
nothing really useful about embedding the code
directly 
    - Tue, 18 Mar 2025 22:43:31 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 18 Mar 2025 22:43:31 +0100] rev 77
 
    - prepare code for embedding shader sources with c23 #embed
 
    - Sat, 01 Mar 2025 22:55:30 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sat, 01 Mar 2025 22:55:30 +0100] rev 76
 
    - update to newest versions of uwproj and ucx
 
    - Sun, 06 Oct 2024 20:49:43 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Oct 2024 20:49:43 +0200] rev 75
 
    - revert introduction of high level ucx trees and stick to the low level API
 
    - Sun, 06 Oct 2024 19:45:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Oct 2024 19:45:34 +0200] rev 74
 
    - fix memory leak in asc_text_printf()
 
    - Sun, 06 Oct 2024 19:43:08 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 06 Oct 2024 19:43:08 +0200] rev 73
 
    - update to recent snapshot of ucx 3.1
 
    - Thu, 15 Aug 2024 17:33:42 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 15 Aug 2024 17:33:42 +0200] rev 72
 
    - define macro for predefined shader
 
    - Wed, 14 Aug 2024 21:09:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 14 Aug 2024 21:09:52 +0200] rev 71
 
    - centralize draw functions
 
    - Sun, 11 Aug 2024 16:29:09 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 11 Aug 2024 16:29:09 +0200] rev 70
 
    - redesign FPS counter
 
    - Sun, 11 Aug 2024 16:28:54 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 11 Aug 2024 16:28:54 +0200] rev 69
 
    - fix that update_transform flag was never cleared
added more flags regarding graphics and transform update 
    - Sun, 11 Aug 2024 16:11:30 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 11 Aug 2024 16:11:30 +0200] rev 68
 
    - add mouse and window focus - resolves #382
plus some minor code improvements 
    - Sun, 11 Aug 2024 15:43:01 +0200
 
    - by Mike Becker <universe@uap-core.de> [Sun, 11 Aug 2024 15:43:01 +0200] rev 67
 
    - update to recent snapshot of UCX 3.1
 
    - Fri, 19 Apr 2024 22:28:29 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 19 Apr 2024 22:28:29 +0200] rev 66
 
    - replaces broken font cache with improved cache - fixes #387
 
    - Thu, 18 Apr 2024 22:53:55 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 18 Apr 2024 22:53:55 +0200] rev 65
 
    - consistently refer to windows by ID - fixes #381
This change discovered that the font cache is completely broken. We created issue #387 for this. 
    - Thu, 18 Apr 2024 21:53:53 +0200
 
    - by Mike Becker <universe@uap-core.de> [Thu, 18 Apr 2024 21:53:53 +0200] rev 64
 
    - make use of the asc_window_active macro
 
    - Tue, 16 Apr 2024 22:20:17 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 16 Apr 2024 22:20:17 +0200] rev 63
 
    - implement mouse motion and key press events
 
    - Tue, 16 Apr 2024 22:06:17 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 16 Apr 2024 22:06:17 +0200] rev 62
 
    - left and right are to distinguish...
 
    - Fri, 12 Apr 2024 22:43:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 12 Apr 2024 22:43:00 +0200] rev 61
 
    - merge different bools of AscSceneNode into flags
 
    - Fri, 12 Apr 2024 22:23:31 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 12 Apr 2024 22:23:31 +0200] rev 60
 
    - remove unnecessary parameters
 
    - Fri, 12 Apr 2024 22:22:07 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 12 Apr 2024 22:22:07 +0200] rev 59
 
    - use fancy named parameters for asc_text()
 
    - Fri, 12 Apr 2024 22:03:15 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 12 Apr 2024 22:03:15 +0200] rev 58
 
    - improve ui/text.h interface a lot
 
    - Wed, 10 Apr 2024 19:43:34 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Apr 2024 19:43:34 +0200] rev 57
 
    - implement centered wrapped text
 
    - Wed, 10 Apr 2024 19:35:14 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Apr 2024 19:35:14 +0200] rev 56
 
    - add convenience function to add nodes to the UI of the active window
 
    - Wed, 10 Apr 2024 19:31:26 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Apr 2024 19:31:26 +0200] rev 55
 
    - make hidden flag a general attribute of nodes
 
    - Wed, 10 Apr 2024 19:29:09 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Apr 2024 19:29:09 +0200] rev 54
 
    - remove check for alpha == zero because that will almost never happen
 
    - Wed, 10 Apr 2024 19:24:39 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Apr 2024 19:24:39 +0200] rev 53
 
    - fix illegally skipping geometry update of text node
the reason is that the scene will not try again to update the node when it is just unhidden 
    - Wed, 10 Apr 2024 19:20:44 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Apr 2024 19:20:44 +0200] rev 52
 
    - use new scale2d function in text update
 
    - Wed, 10 Apr 2024 19:16:26 +0200
 
    - by Mike Becker <universe@uap-core.de> [Wed, 10 Apr 2024 19:16:26 +0200] rev 51
 
    - fix scale not initialized to 1
 
    - Tue, 09 Apr 2024 21:18:52 +0200
 
    - by Mike Becker <universe@uap-core.de> [Tue, 09 Apr 2024 21:18:52 +0200] rev 50
 
    - add texture.h
 
    - Mon, 01 Apr 2024 19:44:00 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 01 Apr 2024 19:44:00 +0200] rev 49
 
    - cleanup includes
 
    - Mon, 01 Apr 2024 19:01:04 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 01 Apr 2024 19:01:04 +0200] rev 48
 
    - create new UI subdir
 
    - Mon, 01 Apr 2024 18:54:19 +0200
 
    - by Mike Becker <universe@uap-core.de> [Mon, 01 Apr 2024 18:54:19 +0200] rev 47
 
    - remove unnecessary scene container
 
    - Fri, 29 Mar 2024 00:03:25 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 29 Mar 2024 00:03:25 +0100] rev 46
 
    - make the timer have nanoseconds precision
 
    - Thu, 28 Mar 2024 23:30:21 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 28 Mar 2024 23:30:21 +0100] rev 45
 
    - simplify how transforms work
 
    - Tue, 26 Mar 2024 20:37:21 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 26 Mar 2024 20:37:21 +0100] rev 44
 
    - create own compilation unit for GL context - fixes shader not being created per context
 
    - Thu, 21 Mar 2024 23:01:09 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 21 Mar 2024 23:01:09 +0100] rev 43
 
    - fix iteration order when drawing nodes
 
    - Thu, 21 Mar 2024 23:00:39 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 21 Mar 2024 23:00:39 +0100] rev 42
 
    - increase maximum possible number of 2D layers
 
    - Thu, 21 Mar 2024 22:23:00 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 21 Mar 2024 22:23:00 +0100] rev 41
 
    - add correct interleaving of opaque and transparent sprites
 
    - Thu, 21 Mar 2024 20:48:18 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 21 Mar 2024 20:48:18 +0100] rev 40
 
    - rename font shader to generic sprite shader
 
    - Thu, 21 Mar 2024 20:34:33 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 21 Mar 2024 20:34:33 +0100] rev 39
 
    - minor improvements
 
    - Thu, 21 Mar 2024 20:24:31 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 21 Mar 2024 20:24:31 +0100] rev 38
 
    - implement that nodes inherit the world transform of their parent
 
    - Fri, 15 Mar 2024 00:06:59 +0100
 
    - by Mike Becker <universe@uap-core.de> [Fri, 15 Mar 2024 00:06:59 +0100] rev 37
 
    - add camera and render groups
 
    - Wed, 06 Mar 2024 23:38:17 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Mar 2024 23:38:17 +0100] rev 36
 
    - invert the logic of converting between specialized nodes and the generic interface
 
    - Wed, 06 Mar 2024 23:13:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Mar 2024 23:13:06 +0100] rev 35
 
    - fix name of demo binary
 
    - Wed, 06 Mar 2024 23:12:56 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Mar 2024 23:12:56 +0100] rev 34
 
    - fix const-warning
 
    - Wed, 06 Mar 2024 23:08:03 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 06 Mar 2024 23:08:03 +0100] rev 33
 
    - add behavior nodes + restructure test program
Also, the test program will now officially be a game of snake. 
    - Mon, 04 Mar 2024 21:16:46 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 04 Mar 2024 21:16:46 +0100] rev 32
 
    - add transformation matrix
 
    - Mon, 26 Feb 2024 21:16:00 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 26 Feb 2024 21:16:00 +0100] rev 31
 
    - use tree iterator to free scene nodes
 
    - Thu, 22 Feb 2024 22:34:50 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 22 Feb 2024 22:34:50 +0100] rev 30
 
    - apply new CxTreeIterator from ucx 3.1 preview
 
    - Tue, 23 Jan 2024 21:34:12 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 23 Jan 2024 21:34:12 +0100] rev 29
 
    - bring first scene graph to live
 
    - Sun, 21 Jan 2024 14:01:27 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 Jan 2024 14:01:27 +0100] rev 28
 
    - remove unused cx/list.h include
 
    - Sun, 21 Jan 2024 13:58:23 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 Jan 2024 13:58:23 +0100] rev 27
 
    - improve implementation of scene graph tree
 
    - Sun, 21 Jan 2024 13:34:49 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 Jan 2024 13:34:49 +0100] rev 26
 
    - make AscText immutable when drawing
 
    - Sun, 21 Jan 2024 13:31:51 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 21 Jan 2024 13:31:51 +0100] rev 25
 
    - rename AscTextNode to just AscText
 
    - Thu, 18 Jan 2024 21:58:58 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 18 Jan 2024 21:58:58 +0100] rev 24
 
    - allow NULL argument für asc_text()
 
    - Thu, 18 Jan 2024 21:53:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 18 Jan 2024 21:53:16 +0100] rev 23
 
    - don't force the use of CxBuffer in AscTextNode
 
    - Mon, 18 Dec 2023 19:05:30 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 18 Dec 2023 19:05:30 +0100] rev 22
 
    - use new cxBufferReset function
 
    - Mon, 18 Dec 2023 19:04:44 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 18 Dec 2023 19:04:44 +0100] rev 21
 
    - add first draft of a scene graph structure
 
    - Mon, 18 Dec 2023 13:04:04 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 18 Dec 2023 13:04:04 +0100] rev 20
 
    - add pseudo-rule s.t. dry-runs won't fail
 
    - Thu, 23 Nov 2023 23:08:57 +0100
 
    - by Mike Becker <universe@uap-core.de> [Thu, 23 Nov 2023 23:08:57 +0100] rev 19
 
    - improve text node API
 
    - Sun, 19 Nov 2023 13:27:08 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 19 Nov 2023 13:27:08 +0100] rev 18
 
    - fix missing UTF8 support for text rendering
 
    - Sun, 19 Nov 2023 13:22:43 +0100
 
    - by Mike Becker <universe@uap-core.de> [Sun, 19 Nov 2023 13:22:43 +0100] rev 17
 
    - fix text rendering for alpha==0
 
    - Wed, 15 Nov 2023 22:51:40 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 15 Nov 2023 22:51:40 +0100] rev 16
 
    - add text rendering and demo FPS counter
 
    - Wed, 08 Nov 2023 23:17:07 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 08 Nov 2023 23:17:07 +0100] rev 15
 
    - add shader loading and unloading
 
    - Wed, 08 Nov 2023 21:53:43 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 08 Nov 2023 21:53:43 +0100] rev 14
 
    - remove C++ support
 
    - Wed, 08 Nov 2023 21:53:21 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 08 Nov 2023 21:53:21 +0100] rev 13
 
    - use OpenGL 4.0 by default
 
    - Wed, 08 Nov 2023 21:46:29 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 08 Nov 2023 21:46:29 +0100] rev 12
 
    - add projection matrix to AscWindow
 
    - Tue, 07 Nov 2023 21:24:06 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Nov 2023 21:24:06 +0100] rev 11
 
    - add font management
 
    - Tue, 07 Nov 2023 21:13:04 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Nov 2023 21:13:04 +0100] rev 10
 
    - make ASC_MAX_WINDOWS an unsigned literal
 
    - Tue, 07 Nov 2023 20:59:10 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Nov 2023 20:59:10 +0100] rev 9
 
    - use the context flag to quit the application
 
    - Tue, 07 Nov 2023 20:24:08 +0100
 
    - by Mike Becker <universe@uap-core.de> [Tue, 07 Nov 2023 20:24:08 +0100] rev 8
 
    - add script to update make rules
 
    - Wed, 01 Nov 2023 21:00:33 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Nov 2023 21:00:33 +0100] rev 7
 
    - improve code structure
 
    - Wed, 01 Nov 2023 20:09:49 +0100
 
    - by Mike Becker <universe@uap-core.de> [Wed, 01 Nov 2023 20:09:49 +0100] rev 6
 
    - move window related stuff to its own unit
 
    - Mon, 30 Oct 2023 18:54:16 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Oct 2023 18:54:16 +0100] rev 5
 
    - give unions names
 
    - Mon, 30 Oct 2023 18:42:09 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Oct 2023 18:42:09 +0100] rev 4
 
    - add simple color data types
 
    - Mon, 30 Oct 2023 18:09:27 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Oct 2023 18:09:27 +0100] rev 3
 
    - add datatypes.h
 
    - Mon, 30 Oct 2023 17:59:37 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Oct 2023 17:59:37 +0100] rev 2
 
    - fix possible double-invocation of asc_window_destroy_impl()
 
    - Mon, 30 Oct 2023 17:40:34 +0100
 
    - by Mike Becker <universe@uap-core.de> [Mon, 30 Oct 2023 17:40:34 +0100] rev 1
 
    - update uwproj files
 
    - Fri, 06 Oct 2023 21:21:10 +0200
 
    - by Mike Becker <universe@uap-core.de> [Fri, 06 Oct 2023 21:21:10 +0200] rev 0
 
    - initial commit