442d86386eMerge branch 'batch_multi_image' into main This allows the renderer to use multiple source textures per batch, and thus create less batches (and less draw calls). It also doesn't create a separate batch for non-image fills/strokes. This greatly improves perf especially when interleaving images and solid color commands. When using lots of images though, it is still recommended to use an atlas, which ensures everything fits in a single batch.Martin Fouilleul2023-07-28 10:48:08 +0200
0c8e698b6e[mtl canvas] don't trigger a new batch when setting the current image to nil (avoids creating a lot of batches when we just alternate between the same image and no image, eg painting multiple instances of the same image with a stroked border)Martin Fouilleul2023-07-27 16:10:30 +0200
b300cc4d7d[gl canvas] balance dispatch of raster shader along 2 dimensions to avoid hitting the max workgroup count per dimensionmartinfouilleul2023-07-27 15:24:20 +0200
3c103eeb65[canvas, gl] compute intermediate glsl structs' sizes according to std430martinfouilleul2023-07-27 14:38:12 +0200
0785b6b637[win32] - Take drop shadown into account when calling SetWindowPos (milepost window frame _excludes_ the drop shadow) - Fix mp_window_center()martinfouilleul2023-07-26 17:35:58 +0200
de28d37d57[win32] update window rect API and reported window sizes to match macosmartinfouilleul2023-07-26 16:55:04 +0200
756b085c5f[osx] update milepost, more consistent window rect apiMartin Fouilleul2023-07-26 15:58:39 +0200
1fd9d17e82[osx] settle on consistent API for getting/setting window rectMartin Fouilleul2023-07-26 15:54:01 +0200
06b5d30dc6[osx] correctly pass move/resize contents and frame rect relative to top-left instead of bottom leftMartin Fouilleul2023-07-25 18:05:55 +0200
213663a09c[milepost update] use autoresizeMask to resize surfaces to the parent window's client areaMartin Fouilleul2023-07-25 17:02:38 +0200
e7cce5e36f[osx, surface] use autoresizeMask to resize surfaces to the parent window's client areaMartin Fouilleul2023-07-25 17:02:11 +0200
a4ae1cf214[win32, surface] Fix auto-selecting surface when first creating one ; checking why smooth resize still doesn't work even though we receive events and draw in a separate threadmartinfouilleul2023-07-25 15:55:09 +0200
985aed852a[app] change mp_move_event to mp_mouse_event and mp_frame_event to mp_move_event. Transmit both window frame and contents rect in move/resize eventsmartinfouilleul2023-07-25 13:40:25 +0200
b4893961fdMerge pull request 'Ignore win32 Pong app' (#19) from ignore-pong into mainMartinFouilleul2023-07-16 15:24:39 +0000
236fa7f8bdIgnore win32 Pong app
Ben Visness
2023-07-15 18:48:47 -0500
d9ab264f81Bring back exports
#18
Ilia Demianenko
2023-07-15 15:56:02 -0700
6c91caddc0Fix event passing
Ilia Demianenko
2023-07-15 15:55:50 -0700
8c885223d3[osx, canvas] revert to 16 pixel wide tiles. 32 gives some benefit for a few large paths, but degrades too much for higher segment countsMartin Fouilleul2023-07-15 17:32:18 +0200
bff9a3618f[win32, canvas] use glBindBufferBase() and explicit uniform offset to avoid glBindBufferRange() implementation-specific alignment issuesmartinfouilleul2023-07-15 15:29:45 +0200
e7982b7786Just use MP_KEYMOD_MAIN_MODIFIER instead of OS_COPY_PASTE_MOD
Ilia Demianenko
2023-07-15 00:54:57 -0700
5fa9c3c34cFixes
Ilia Demianenko
2023-07-15 00:49:41 -0700
e6c271c3f5minor
Ilia Demianenko
2023-07-15 00:35:02 -0700
2214974804Merge branch 'main' into orca_uiilidemi2023-07-15 07:21:41 +0000
7450930ae8minor
Ilia Demianenko
2023-07-15 00:20:45 -0700
445325d45fMerge branch 'orca_ui' of git.handmade.network:ilidemi/milepost into orca_ui
Ilia Demianenko
2023-07-15 00:17:53 -0700
40906bb852Feedback
Ilia Demianenko
2023-07-15 00:15:12 -0700
bffcaa4abfFeedback
Ilia Demianenko
2023-07-15 00:15:07 -0700
782b7f54ae[win32, canvas] only dispatch raster shader for tiles touched by pathsmartinfouilleul2023-07-14 18:58:18 +0200
1c244c2a00[win32, canvas] only sample coverage at 8x and source textures at 2x, and accumulate in a single color value per pixelmartinfouilleul2023-07-14 17:37:33 +0200
684543ec15[gl canvas] fix implicit boolean conversion error on some driversmartinfouilleul2023-07-12 15:46:52 +0200
025ebd91d5[osx, canvas] - Pass buffer lengths to kernels and bound check when allocating from buffers - Dynamically compute/guess size of intermediate buffers and grow if neededMartin Fouilleul2023-07-11 20:03:17 +0200
98a516ff0a[osx, canvas] start with small input buffers and grow them as neededMartin Fouilleul2023-07-11 17:00:17 +0200
9e8a0f5f69[osx, canvas] Only dispatch raster shader for tiles that are overlapped by at least one path.Martin Fouilleul2023-07-10 20:20:18 +0200
bfc7530bcf[osx, canvas] - Only super sample coverage at 8x rate, and accumulate pixel color in a single color value - Super sample images at lower 2x rate - Cull tiles outside clip - Bypass coverage for fully covered tilesMartin Fouilleul2023-07-10 17:52:34 +0200
a65b0cc1bb[osx, surface] Query list of available metal devices, and select a discrete GPU if available. This way we avoid calling MTLCreateSystemDefaultDevice() which messes with Discord's screen sharing, while also being able to take GPU frame captures in XCode (which was broken by 9bfae2c4e8)Martin Fouilleul2023-07-10 11:28:49 +0200
59fdc27ac6[gl, canvas] - Haul path color and texture sampling outside of per-sample loop - Pack gl input structs a bit - Set correct hint flags for glBufferData()martinfouilleul2023-07-07 15:45:06 +0200
301020ee9aupdate milepost to fix issue 15 with discord screen sharingMartin Fouilleul2023-07-07 10:44:16 +0200
9bfae2c4e8[osx, metal] Set metal layer's device to layer.preferredDevice instead of calling MTLCreateDefaultSystemDevice(). This fixes issue 15 so we can use Discord's screen sharing while using Orca. This will need to be revisited when we want to actually use a different metal device.Martin Fouilleul2023-07-07 10:41:17 +0200
f0d910e3e5[win32] compile wasm3 with optimizations (don't forget to re-run `build.bat wasm3` and the `build.bat orca`)martinfouilleul2023-07-06 15:06:34 +0200
de5c74c607update milepost to fix crash on windows when deselecting surfacemartinfouilleul2023-07-06 11:33:36 +0200
806f00417e[win32, canvas] Fix random crash by correctly setting wgl_surface deselect function pointer to mg_wgl_deselect(). Forgot to do it in 18c793db, dumb me.martinfouilleul2023-07-06 11:29:57 +0200
e2a2116cb2Make pong prettier
Ben Visness
2023-07-04 16:14:14 -0500
ff5a57fb92Add some convenient rectangle accessors
Ben Visness
2023-07-04 16:13:28 -0500
bdb9ddf888[win32, canvas] added back texture atlasing and fixed incorrect culling of solid tiles when using a source texturemartinfouilleul2023-07-04 17:24:41 +0200