Commit Graph

351 Commits

Author SHA1 Message Date
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
Martin Fouilleul 529a13867c fix git handling of symlink 2023-06-13 20:06:20 +02:00
martinfouilleul 9954b69eda [win32, io] implement IO_OP_OPEN_AT with non-null base directory handle 2023-06-13 19:53:06 +02:00
Martin Fouilleul 0bd985efbc [io] restrict rights of files open with file_open_at to the rights of the directory handle 2023-06-13 15:56:19 +02:00
Martin Fouilleul b147aed85c - Added tests for sandboxing file io with file_open_at() and FILE_OPEN_RESTRICT
- Fixed bug in io_open_restrict() that closed the dir file descriptor, making it impossible to use it in subsequent calls.
2023-06-12 18:04:59 +02:00
Martin Fouilleul b2d2d2a587 [io] implementing IO_OP_OPEN_AT with FILE_OPEN_RESTRICT flag for sandboxing file access 2023-06-11 18:20:21 +02:00