Commit Graph

306 Commits

Author SHA1 Message Date
Martin Fouilleul 7573c40c56 [mtl, canvas] remove unused hull matrix 2023-07-07 16:44:32 +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 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 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 1e34c3406f fixing conflict in gl_canvas 2023-07-05 18:07:37 +02: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
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
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
martinfouilleul b797f187dc [wip, win32, canvas] porting new canvas renderer to opengl 2023-06-27 18:53:09 +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 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
Martin Fouilleul 4b491ee94a - Defined mp_thread_local to nothing for Orca platforms (since this requires atomics, which we don't have yet). This allows use to enable bulk-memory without getting clang backend errors about missing tls and atomics.
- Replaced memory copy/fill routines with builtins
2023-06-25 20:29:50 +02:00
Martin Fouilleul 98a67cef72 #define MORECORE to orca_mem_grow. Removed builtin memory routine that don't seem to be supported by wasm3 (TODO: investigate that later) 2023-06-25 20:29:50 +02:00
Ben Visness bcf84e0b80 Graphics and memory stuff for stb_image 2023-06-25 20:29:50 +02:00
Martin Fouilleul bc03887148 Added ORCA_IMPORT to mark symbols imported from the runtime 2023-06-25 20:17:01 +02:00
Martin Fouilleul 28e0a6c88e Add tag to io_op enum, for debugging convenience 2023-06-23 17:24:18 +02:00
Martin Fouilleul 18c793dbb4 When we call mg_surface_prepare() on a surface, select it in a per-thread handle. Automatically call deselect on the selected handle when preparing another surface. Also have a way to deselect whichever surface is currently selected. This is needed for some backend that explicitly need to be 'unbound' before using them from another thread 2023-06-23 15:32:32 +02:00
martinfouilleul 83f128fb55 [win32, graphics] adding example to test rendering in a secondary thread 2023-06-21 19:14:56 +02:00
martinfouilleul 0366e3d724 [win32, graphics] experiments with multisurface with transparent top-level windows 2023-06-21 15:48:26 +02:00
martinfouilleul ae7a60b942 [win32, graphics, wip] working on multi surface, currently using top-level transparent window and moving them to cover the 'parent' window area... 2023-06-21 12:36:05 +02:00
Martin Fouilleul c357da97f6 add multi surface skeleton example 2023-06-20 11:47:02 +02:00
Martin Fouilleul 26a1af344c Fix rpath in examples 2023-06-20 11:45:59 +02:00
martinfouilleul d9a9215fa8 Fixed bug in mem_arena_alloc when selecting chunk from which to allocate 2023-06-19 17:09:31 +02:00
martinfouilleul 2fe683b79d fixed include directives to avoid having to pass to much include paths in usage scripts 2023-06-19 16:16:54 +02:00
martinfouilleul d2c4acf6e2 [wip] adding missing impl for win32 version of orca 2023-06-17 20:09:25 +02:00
martinfouilleul e93bf76adc [win32] silence warning about WIN32_LEAN_AND_MEAN redefinitions 2023-06-16 20:06:02 +02:00
martinfouilleul 6499bcd2a2 [win32] fixing include directives to avoid having to pass all include dirs to compiler 2023-06-16 19:48:33 +02:00
martinfouilleul debcffce2a [win32, io] win32 passes files io test with new common io_open_at implementation 2023-06-16 15:30:48 +02:00
Martin Fouilleul a64c86ca4e [io, test] Added more file io tests 2023-06-16 11:57:53 +02:00
Martin Fouilleul ec53cd5416 [io, osx] Reorganize to first compute flags/do checks etc., then enter next path element at a single callsite 2023-06-15 20:01:52 +02:00
Martin Fouilleul d363c8b607 [wip, osx, io] reorganizing io_open_restrict, fix opening last element with the correct flags 2023-06-15 18:27:33 +02:00
martinfouilleul c71da9e761 [io, win32] separate 'raw io' primitives from the io_open_restrict() implementation 2023-06-14 19:41:51 +02:00
martinfouilleul 49643520ee [win32, io] adding context struct for use in io_open_path_restrict() 2023-06-14 18:35:33 +02:00
martinfouilleul 5d2bf9eab9 [wip, win32, io] win32 file io passing tests (still work to do though) 2023-06-14 17:21:31 +02:00
martinfouilleul 0fa6dcd2ea [win32, io]
- Added str16 functions for dealing with win32 wide char strings
- Added io_open_relative to open a path relative to an already opened handle (with no escape checking)
2023-06-14 12:03:50 +02:00