Commit Graph

  • 442d86386e Merge 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 Fouilleul 2023-07-28 10:48:08 +0200
  • b05caf984c [gl canvas] allow multiple textures per batch martinfouilleul 2023-07-27 20:07:07 +0200
  • c983c39f44 [canvas] removed old begin/end/renderBatch function pointers Martin Fouilleul 2023-07-27 18:11:34 +0200
  • 203adfd470 [mtl canvas] allow using multiple textures per batch Martin Fouilleul 2023-07-27 16:46:10 +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 Fouilleul 2023-07-27 16:10:30 +0200
  • 3dd85fdf74 [milepost] update milepost (gl canvas buffers size improvements) martinfouilleul 2023-07-27 15:40:56 +0200
  • 392bd3a756 Merge branch 'new_gl_canvas' martinfouilleul 2023-07-27 15:38:55 +0200
  • b300cc4d7d [gl canvas] balance dispatch of raster shader along 2 dimensions to avoid hitting the max workgroup count per dimension martinfouilleul 2023-07-27 15:24:20 +0200
  • 3c103eeb65 [canvas, gl] compute intermediate glsl structs' sizes according to std430 martinfouilleul 2023-07-27 14:38:12 +0200
  • ae862b39ba [win32, gl canvas] grow intermediate gl buffers as needed martinfouilleul 2023-07-27 12:40:52 +0200
  • a35f0b82b2 [win32, gl canvas] bound check intermediate buffers in canvas shaders martinfouilleul 2023-07-27 12:11:30 +0200
  • 680deb35b0 [win32, gl canvas] grow path and element input buffers as needed martinfouilleul 2023-07-27 11:37:39 +0200
  • bbe34a3b58 Move mkapp.py into a bundle command Ben Visness 2023-07-26 21:28:39 -0500
  • 8bd12bdd1f This commit will not hard-lock your Mac Ben Visness 2023-07-23 12:01:06 -0500
  • 731b5a6bba This commit will hard-lock your Mac Ben Visness 2023-07-23 10:58:08 -0500
  • 062cd1e2de Build wasm3 on Mac Ben Visness 2023-07-23 10:18:25 -0500
  • 389b9607d6 Use frankensteined angle build for now Ben Visness 2023-07-22 18:16:31 -0500
  • 6ca5b6f4f0 Change expected Mac filename Ben Visness 2023-07-22 17:41:10 -0500
  • 10351e45cd Get entire Orca build working on Windows Ben Visness 2023-07-19 18:35:07 -0500
  • 25f660227f Add Windows wasm3 build Ben Visness 2023-07-19 18:14:27 -0500
  • b398b74ac9 Go back to ANGLE 2023-07-05 and fix some checksum bugs Ben Visness 2023-07-15 19:00:34 -0500
  • 4337b9bffa Copy .lib files on Windows Ben Visness 2023-07-15 18:39:44 -0500
  • 25782ccc77 Fix some build issues on Windows Ben Visness 2023-07-15 16:23:05 -0500
  • d97e69992b Preemptively fix a checksum problem I hope Ben Visness 2023-07-08 17:50:01 -0500
  • 92529ba7c1 Add Windows stuff (untested) Ben Visness 2023-07-08 17:21:01 -0500
  • fbba6330e9 Add automatic ANGLE downloads Ben Visness 2023-07-08 09:22:29 -0500
  • 76e007ee72 Add checksums for ANGLE and a logging system Ben Visness 2023-07-07 18:22:13 -0500
  • e12afb619f Get milepost mac build working in Python Ben Visness 2023-07-07 11:25:49 -0500
  • 23f0d75e20 Merge branch 'autoresize_surfaces' martinfouilleul 2023-07-26 17:43:58 +0200
  • 81b700121f update milepost martinfouilleul 2023-07-26 17:42:48 +0200
  • 0caeccd3fb Merge branch 'autoresize_surfaces' martinfouilleul 2023-07-26 17:41:50 +0200
  • a1068c979a [win32] fix mp_window_center() martinfouilleul 2023-07-26 17:38:24 +0200
  • 0785b6b637 [win32] - Take drop shadown into account when calling SetWindowPos (milepost window frame _excludes_ the drop shadow) - Fix mp_window_center() martinfouilleul 2023-07-26 17:35:58 +0200
  • de28d37d57 [win32] update window rect API and reported window sizes to match macos martinfouilleul 2023-07-26 16:55:04 +0200
  • 2c0d3268e7 [win32] update window rect API martinfouilleul 2023-07-26 16:50:45 +0200
  • 756b085c5f [osx] update milepost, more consistent window rect api Martin Fouilleul 2023-07-26 15:58:39 +0200
  • 1fd9d17e82 [osx] settle on consistent API for getting/setting window rect Martin Fouilleul 2023-07-26 15:54:01 +0200
  • 06b5d30dc6 [osx] correctly pass move/resize contents and frame rect relative to top-left instead of bottom left Martin Fouilleul 2023-07-25 18:05:55 +0200
  • 213663a09c [milepost update] use autoresizeMask to resize surfaces to the parent window's client area Martin Fouilleul 2023-07-25 17:02:38 +0200
  • e7cce5e36f [osx, surface] use autoresizeMask to resize surfaces to the parent window's client area Martin Fouilleul 2023-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 thread martinfouilleul 2023-07-25 15:55:09 +0200
  • 225b506dd4 [win32, surface] automatically resize surfaces to parent window's client area martinfouilleul 2023-07-25 14:21:44 +0200
  • 3816e85592 [win32, surface] always resize surface to parent window's client area martinfouilleul 2023-07-25 14:18:02 +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 events martinfouilleul 2023-07-25 13:40:25 +0200
  • b4893961fd Merge pull request 'Ignore win32 Pong app' (#19) from ignore-pong into main MartinFouilleul 2023-07-16 15:24:39 +0000
  • 5b40414f52 Merge branch 'main' into ignore-pong #19 MartinFouilleul 2023-07-16 15:22:39 +0000
  • 86f6eb028c update milepost to fix win32 gl renderer martinfouilleul 2023-07-16 17:21:43 +0200
  • a95de7902f Merge pull request 'Milepost UI demo' (#18) from ilidemi/orca:ui into main MartinFouilleul 2023-07-16 15:19:08 +0000
  • 2a4e90cf9a [win32, canvas] Fix padding of mg_gl_screen_tile martinfouilleul 2023-07-16 17:12:34 +0200
  • 236fa7f8bd Ignore win32 Pong app Ben Visness 2023-07-15 18:48:47 -0500
  • d9ab264f81 Bring back exports #18 Ilia Demianenko 2023-07-15 15:56:02 -0700
  • 6c91caddc0 Fix 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 counts Martin Fouilleul 2023-07-15 17:32:18 +0200
  • bff9a3618f [win32, canvas] use glBindBufferBase() and explicit uniform offset to avoid glBindBufferRange() implementation-specific alignment issues martinfouilleul 2023-07-15 15:29:45 +0200
  • 6a3cb83932 Merge branch 'ilidemi-orca_ui' into main Martin Fouilleul 2023-07-15 11:42:48 +0200
  • e7982b7786 Just use MP_KEYMOD_MAIN_MODIFIER instead of OS_COPY_PASTE_MOD Ilia Demianenko 2023-07-15 00:54:57 -0700
  • 5fa9c3c34c Fixes Ilia Demianenko 2023-07-15 00:49:41 -0700
  • e6c271c3f5 minor Ilia Demianenko 2023-07-15 00:35:02 -0700
  • 2214974804 Merge branch 'main' into orca_ui ilidemi 2023-07-15 07:21:41 +0000
  • 7450930ae8 minor Ilia Demianenko 2023-07-15 00:20:45 -0700
  • 445325d45f Merge branch 'orca_ui' of git.handmade.network:ilidemi/milepost into orca_ui Ilia Demianenko 2023-07-15 00:17:53 -0700
  • 40906bb852 Feedback Ilia Demianenko 2023-07-15 00:15:12 -0700
  • bffcaa4abf Feedback Ilia Demianenko 2023-07-15 00:15:07 -0700
  • 782b7f54ae [win32, canvas] only dispatch raster shader for tiles touched by paths martinfouilleul 2023-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 pixel martinfouilleul 2023-07-14 17:37:33 +0200
  • ec0f22a9d8 [osx, canvas] keep op buffer size to 4<<20 for now Martin Fouilleul 2023-07-14 16:28:26 +0200
  • ff1460e629 Merge branch 'main' into orca_ui ilidemi 2023-07-14 04:57:45 +0000
  • a683c163cb Merge branch 'main' into ui Ilia Demianenko 2023-07-13 21:53:57 -0700
  • 0eefeb3747 UI demo Ilia Demianenko 2023-07-13 21:38:32 -0700
  • 8bfbabd877 Orca UI support Ilia Demianenko 2023-07-13 21:36:31 -0700
  • 660ad33ddc [win32, gl canvas] persistently map input buffers martinfouilleul 2023-07-12 15:06:20 +0200
  • 6944325014 [win32, canvas] rolling input buffers martinfouilleul 2023-07-12 10:32:20 +0200
  • 684543ec15 [gl canvas] fix implicit boolean conversion error on some drivers martinfouilleul 2023-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 needed Martin Fouilleul 2023-07-11 20:03:17 +0200
  • 98a516ff0a [osx, canvas] start with small input buffers and grow them as needed Martin Fouilleul 2023-07-11 17:00:17 +0200
  • fc07a0d018 [osx, canvas] use 32 pixels-wide tiles Martin Fouilleul 2023-07-11 14:27:15 +0200
  • 9e8a0f5f69 [osx, canvas] Only dispatch raster shader for tiles that are overlapped by at least one path. Martin Fouilleul 2023-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 tiles Martin Fouilleul 2023-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 Fouilleul 2023-07-10 11:28:49 +0200
  • 7573c40c56 [mtl, canvas] remove unused hull matrix Martin Fouilleul 2023-07-07 16:44:32 +0200
  • fd205df8a7 update milepost martinfouilleul 2023-07-07 15:48:28 +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() martinfouilleul 2023-07-07 15:45:06 +0200
  • 301020ee9a update milepost to fix issue 15 with discord screen sharing Martin Fouilleul 2023-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 Fouilleul 2023-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`) martinfouilleul 2023-07-06 15:06:34 +0200
  • de5c74c607 update milepost to fix crash on windows when deselecting surface martinfouilleul 2023-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. martinfouilleul 2023-07-06 11:29:57 +0200
  • 7437dd0b0f Testing superpong on win32 martinfouilleul 2023-07-05 18:25:14 +0200
  • 4578c8d767 Merge branch 'main' into superpong martinfouilleul 2023-07-05 18:13:21 +0200
  • 1e34c3406f fixing conflict in gl_canvas martinfouilleul 2023-07-05 18:07:37 +0200
  • e2a2116cb2 Make pong prettier Ben Visness 2023-07-04 16:14:14 -0500
  • ff5a57fb92 Add 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 texture martinfouilleul 2023-07-04 17:24:41 +0200
  • 5c4c8ce505 [wip, win32, canvas] adding back textures martinfouilleul 2023-07-04 15:59:45 +0200
  • 311cef65e8 [wip, win32, canvas] dispatch path setup, segment setup and backprop in batches of GL_MAX_COMPUTE_WORK_GROUP_COUNT elements martinfouilleul 2023-07-03 16:16:39 +0200
  • e24a872fad [wip, win32, canvas] encode strokes martinfouilleul 2023-07-03 15:16:27 +0200
  • d00024b515 [wip, win32, canvas] added MSAA to new canvas renderer martinfouilleul 2023-07-03 15:00:40 +0200
  • 0e6d67f636 [wip, win32, canvas] Cubics segment setup martinfouilleul 2023-07-03 14:21:53 +0200
  • 01aa4f838f [wip, win32, canvas] quadratics martinfouilleul 2023-07-03 12:14:21 +0200
  • 899ad4c030 [wip, win32, canvas] Correctly setup path index in segment_setup.glsl martinfouilleul 2023-07-03 11:02:04 +0200