Commit Graph

529 Commits

Author SHA1 Message Date
Martin Fouilleul 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
2023-07-11 20:03:17 +02:00
Martin Fouilleul 98a516ff0a [osx, canvas] start with small input buffers and grow them as needed 2023-07-11 17:00:17 +02:00
Martin Fouilleul fc07a0d018 [osx, canvas] use 32 pixels-wide tiles 2023-07-11 14:27:15 +02:00
Martin Fouilleul 9e8a0f5f69 [osx, canvas] Only dispatch raster shader for tiles that are overlapped by at least one path. 2023-07-10 20:20:18 +02:00
Martin Fouilleul 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
2023-07-10 17:52:34 +02:00
Martin Fouilleul 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) 2023-07-10 11:28:49 +02:00
Martin Fouilleul 7573c40c56 [mtl, canvas] remove unused hull matrix 2023-07-07 16:44:32 +02:00
martinfouilleul fd205df8a7 update milepost 2023-07-07 15:48:28 +02:00
martinfouilleul 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()
2023-07-07 15:45:06 +02:00
Martin Fouilleul 301020ee9a update milepost to fix issue 15 with discord screen sharing 2023-07-07 10:44:16 +02:00
Martin Fouilleul 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. 2023-07-07 10:41:17 +02:00
martinfouilleul f0d910e3e5 [win32] compile wasm3 with optimizations (don't forget to re-run `build.bat wasm3` and the `build.bat orca`) 2023-07-06 15:06:34 +02:00
martinfouilleul de5c74c607 update milepost to fix crash on windows when deselecting surface 2023-07-06 11:33:36 +02:00
martinfouilleul 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. 2023-07-06 11:29:57 +02:00
martinfouilleul 7437dd0b0f Testing superpong on win32 2023-07-05 18:25:14 +02:00
martinfouilleul 4578c8d767 Merge branch 'main' into superpong 2023-07-05 18:13:21 +02:00
martinfouilleul 1e34c3406f fixing conflict in gl_canvas 2023-07-05 18:07:37 +02:00
Ben Visness e2a2116cb2 Make pong prettier 2023-07-04 16:14:14 -05:00
Ben Visness ff5a57fb92 Add some convenient rectangle accessors 2023-07-04 16:13:28 -05:00
martinfouilleul bdb9ddf888 [win32, canvas] added back texture atlasing and fixed incorrect culling of solid tiles when using a source texture 2023-07-04 17:24:41 +02:00
martinfouilleul 5c4c8ce505 [wip, win32, canvas] adding back textures 2023-07-04 15:59:45 +02:00
martinfouilleul 311cef65e8 [wip, win32, canvas] dispatch path setup, segment setup and backprop in batches of GL_MAX_COMPUTE_WORK_GROUP_COUNT elements 2023-07-03 16:16:39 +02:00
martinfouilleul e24a872fad [wip, win32, canvas] encode strokes 2023-07-03 15:16:27 +02:00
martinfouilleul d00024b515 [wip, win32, canvas] added MSAA to new canvas renderer 2023-07-03 15:00:40 +02:00
martinfouilleul 0e6d67f636 [wip, win32, canvas] Cubics segment setup 2023-07-03 14:21:53 +02:00
martinfouilleul 01aa4f838f [wip, win32, canvas] quadratics 2023-07-03 12:14:21 +02:00
martinfouilleul 899ad4c030 [wip, win32, canvas] Correctly setup path index in segment_setup.glsl 2023-07-03 11:02:04 +02:00
Ben Visness 6e2457ded3 Remove incorrect extern defs 2023-07-02 09:24:34 -05:00
Ben Visness 8925e3e3a0 Actually draw that background image 2023-07-02 07:22:12 -05:00
Ben Visness c509c612e1 Add dtrace + spall script 2023-07-02 07:09:39 -05:00
Ben Visness b1c0754d54 Draw text better, make block layout more interesting 2023-07-02 06:27:29 -05:00
martinfouilleul e31f6cd4ec [win32] Fix building the pong sample on win32 2023-07-02 12:50:32 +02:00
martinfouilleul 36c75a55dd [win32] Fix first image not being rendered in win32 canvas renderer 2023-07-02 12:49:45 +02:00
martinfouilleul b61d8868d3 [wip, win32, canvas] wip trying to fix multiple shapes 2023-07-02 12:26:54 +02:00
Ben Visness d139619147 Add paddle angle fun time party 2023-07-01 14:33:28 -05:00
Ben Visness f6e89e6168 Implement basic breakout 2023-07-01 12:02:41 -05:00
Ben Visness 071e8560d4 A little build script cleanup 2023-06-30 17:14:10 -05:00
martinfouilleul 7628138cee [wip, win32, canvas] tiling in per-path tile queues, then merge (no backprop for now) 2023-06-30 16:53:36 +02:00
martinfouilleul f0b7cf32a9 [wip, win32, canvas] winding backprop and right crossing segments 2023-06-30 15:30:05 +02:00
martinfouilleul 0870097262 [wip, win32, canvas] bin segments to screen tile queues 2023-06-30 15:18:37 +02:00
martinfouilleul 15c54b9385 [wip, win32, canvas] segment setup, non tiled 2023-06-29 16:43:38 +02:00
martinfouilleul f76ff94c28 [wip, win32, canvas] raster elements directly per pixel 2023-06-29 15:48:52 +02:00
Ben Visness 23984e8370 Enable font stuff in Orca 2023-06-28 20:44:13 -05:00
Ben Visness b792476d36 We can render text! 2023-06-28 20:43:52 -05:00
martinfouilleul b797f187dc [wip, win32, canvas] porting new canvas renderer to opengl 2023-06-27 18:53:09 +02:00
Martin Fouilleul b7e3e83f3e Block for events in main thread, and avoid burning the planet 2023-06-26 20:00:29 +02:00
Martin Fouilleul 21aa1bef68 [win32] honor timeout value in mp_pump_events 2023-06-26 19:59:34 +02:00
Martin Fouilleul 0d65d19436 str8_to_cstring forwards to str8_push_copy(), which null-terminates the copy 2023-06-26 16:24:12 +02:00
Martin Fouilleul 0a83f26f7b avoid some unnecessary str8 copies now that arena-allocating string functions null terminate strings 2023-06-26 16:07:44 +02:00
Martin Fouilleul ffb900d872 String functions that return str8/16/32 allocated on an arena implicitly zero-terminate strings, so we can avoid one copy when passing to C stdlib APIs 2023-06-26 16:06:26 +02:00