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
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
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
Martin Fouilleul
c041b212ab
[io] removed IO_OP_POS, wrap IO_OP_SEEK with offset 0 and flag FILE_SEEK_CURRENT instead
2023-05-31 11:38:17 +02:00
martinfouilleul
a1b3195ddf
[win32, io, wip] add fstat operation (type/size/perms for now, TODO: times)
2023-05-26 18:01:44 +02:00
martinfouilleul
3667ab30e0
[win32, io, wip] add win32 io impl. for open/close/seek/read/write
2023-05-26 16:03:23 +02:00
Martin Fouilleul
41b6128a35
[io] testing abstracted io
2023-05-26 11:40:00 +02:00
Martin Fouilleul
c75661cfc9
[io] abstract file io API, using a request/completion model ala io_uring (w/ only synchronous completion for now), and per-platform backend
2023-05-25 20:08:38 +02:00
Martin Fouilleul
debffac5c0
[path] use new mem_scratch_begin_next() API in path functions, to handle the case where passed-in result arena is itself a scratch arena
2023-05-24 20:36:05 +02:00
Martin Fouilleul
ba125ae860
[mem] change scratch arena API to allow using independant scratch for temporary computations and results
2023-05-24 20:17:03 +02:00
Martin Fouilleul
02bfe587c8
[path] adding platform path functions
2023-05-24 16:27:39 +02:00
martinfouilleul
db0dadd128
[win32] allow specifying start folder in open/save dialogs
2023-05-23 17:24:38 +02:00
martinfouilleul
ed45d88cfd
[win32] add file type filters to open/save dialogs
2023-05-23 16:43:57 +02:00
martinfouilleul
49de9d0290
[win32] added basic mp_save_dialogue() implementation using COM IFileSaveDialog
2023-05-23 16:04:49 +02:00
martinfouilleul
e24500e18d
[win32] added basic mp_open_dialog() implementation using COM IFileOpenDialog
2023-05-23 15:59:29 +02:00
martinfouilleul
a54c8b4f4b
[win32] alert popup using TaskDialogIndirect(): automatically handles icons, dpi, and text/buttons layout (but requires Vista or higher)
2023-05-23 14:50:31 +02:00
martinfouilleul
f1d8dd1ca9
[win32] crappy message box with custom button text. Not DPI aware, doesn't show message box image (eg exclamation/information mark), and has very crude layout...
2023-05-23 12:55:57 +02:00
martinfouilleul
a6a37c874e
[win32] adding prototypes for open/save/alert dialogs in win32_app.c
2023-05-17 16:50:07 +02:00
martinfouilleul
2a01cba026
[ui] Fix ui scrolling
2023-05-17 15:48:25 +02:00
martinfouilleul
2bec7a633a
[win32] reflected changes to canvas surface interface on GL backend. But implementation still uses the (slower) Loop-Blinn + triangle fan method.
2023-05-16 18:06:22 +02:00
martinfouilleul
52538248d9
[win32, wip] compile and run simple window example
2023-05-12 16:46:13 +02:00
martinfouilleul
62b8b3323e
[win32, wip] Remove input state from win32_app code
2023-05-12 11:42:35 +02:00
martinfouilleul
2bf6a4f007
Fixed void pointer arithmetic in hash.c to avoid pedantic error on msvc
2023-05-12 11:13:55 +02:00
Martin Fouilleul
9b29e681fe
Merge commit 'e426319' into orca (integrate fix to mg_image_size(), which doesn't need a current canvas anymore)
2023-05-10 11:20:30 +02:00
Martin Fouilleul
e426319723
Fix mg_image_size() (doesn't need a current canvas anymore)
2023-05-10 11:18:36 +02:00
Martin Fouilleul
3f1447f729
Always put arena pointer in mem_arena_marker, to avoid possible DEBUG value discrepancy between lib and client code
2023-05-09 18:29:32 +02:00
Martin Fouilleul
1ab1d70df2
Fix image data not storing surface handle in mg_image_create()
2023-05-08 13:01:45 +02:00
Martin Fouilleul
39e96e0739
Added xxhash64 hash function and use that instead of x64-specific aes hash, until we get an arm version
2023-04-29 19:25:40 +02:00
Martin Fouilleul
b27dc615d1
Finish separating graphics_common and graphics_surface + add platform_math, so that we can compile graphics_common to wasm in orca
2023-04-26 14:56:02 +02:00
Martin Fouilleul
ca1caf8537
splitting graphics_surface and graphics_common in order to isolate surface dispatch stuff from orca apps
2023-04-25 22:15:56 +02:00
Martin Fouilleul
346979a21a
[canvas] change surface/canvas APIs to treat canvas a 'just another kind of surface', and split canvas implementation (managed by surface) from canvas _command buffer_ and implicit context (represented by mg_canvas)
2023-04-25 19:13:15 +02:00
Martin Fouilleul
32d7d91893
[wip] changed ui_begin_frame() to take explicit canvas size
2023-04-25 15:10:05 +02:00
Martin Fouilleul
3769b70753
[wip] changing backend enum to api enum, and adding canvas api in here
2023-04-25 14:54:52 +02:00
Martin Fouilleul
7c273f494b
[ui, logging]
...
- Changed workings of ui_panel() and scrolling to make it easier for usage code to control scrolling.
- Renamed logging functions
2023-04-20 15:40:00 +02:00
Martin Fouilleul
bb6b68ad73
[event system] allocate events and additional payload (e.g. file paths) directly in ring buffer, and copy them to user-supplied arena in mp_next_event()
2023-04-19 16:16:36 +02:00
Martin Fouilleul
ab150f94f2
separating input state from app, so that it can be used in different threads that main thread. E.g. ui context uses its own input state that can be fed events in a second thread
2023-04-19 11:28:20 +02:00
Martin Fouilleul
f1d6e0f15c
remove unnecessary platform headers from utf8 files
2023-04-18 18:42:48 +02:00
Martin Fouilleul
ff4dddc0b7
moved assert to platform layer
2023-04-18 18:36:06 +02:00
Martin Fouilleul
794f47b141
abstracting logging for orca
2023-04-18 18:05:54 +02:00
Martin Fouilleul
86a16d3775
modifications to log system to support orca env where stdio is not defined
2023-04-18 14:33:27 +02:00
Martin Fouilleul
0d6fb197fb
adding vargs and asserts for orca
2023-04-18 10:43:52 +02:00
Martin Fouilleul
e9e9ab68c2
base memory allocator and chunked arenas for orca
2023-04-17 18:12:21 +02:00
Martin Fouilleul
f36e144bc0
start integrating milepost components to orca
2023-04-17 10:55:19 +02:00
Martin Fouilleul
c347e10577
Put all dependency libraries and shaders in bin directory
2023-04-12 16:12:26 +02:00
Martin Fouilleul
f35e91a38c
[mtl renderer] fixed clipping
2023-04-11 14:51:58 +02:00
Martin Fouilleul
b7f5b84123
[mtl canvas] remove old metal canvas stuff
2023-04-11 11:19:29 +02:00
Martin Fouilleul
03b5802529
[canvas] replace simple shape helpers with normal paths operations instead of having dedicated primitives for rounded rects/ellipses and so on
2023-04-11 11:16:23 +02:00
Martin Fouilleul
c6e89c1869
[wip] adding smooth live-resizing example
2023-04-11 10:50:14 +02:00
Martin Fouilleul
551d5e084e
[mtl renderer] re-introduced texturing
2023-04-09 19:24:32 +02:00
Martin Fouilleul
ee3e55dadd
[mtl renderer] fix msaa sample positions
2023-04-08 12:11:38 +02:00
Martin Fouilleul
effd8f1dd0
[mtl canvas] use same ccw test for testing against diagonal and testing against hull
2023-04-08 10:04:17 +02:00
Martin Fouilleul
2b7aadf180
[mtl canvas] multi-sampling
2023-04-07 18:18:50 +02:00
Martin Fouilleul
65b5a4b52a
[mtl renderer] Fixed curve slicing which used matrix operation and re-parameterization, which could create gaps in path. Now use blossoms, which ensure endpoints of subcurves match
2023-04-07 17:17:55 +02:00
Martin Fouilleul
d1fab449bc
[mtl canvas] Fixed loop implicit matrix
2023-04-07 10:15:37 +02:00
Martin Fouilleul
c4e866d9d4
[mtl canvas] Fix shader contents scaling
2023-04-05 10:31:50 +02:00
Martin Fouilleul
4c4f27066b
[mtl renderer] re-introduced end caps
2023-04-05 10:25:48 +02:00
Martin Fouilleul
e999af6bd3
[mtl canvas] make diagonal checks inclusive in mtl_side_of_segment()
2023-04-05 10:19:25 +02:00
Martin Fouilleul
53946a5710
[mtl canvas] fix end joint not generated for paths with only 2 elements
2023-04-05 09:52:12 +02:00
Martin Fouilleul
2484cdf7b3
[mtl canvas, wip] re-introducing joints
2023-04-04 20:35:48 +02:00
Martin Fouilleul
8d7fdf3b1a
[mtl canvas, wip] Fixing inclusive/exclusive bound checks during curve side tests / shortcut / rasterization
2023-04-04 19:02:53 +02:00
Martin Fouilleul
9322db8201
[mtl canvas, wip] cubic bézier implicitization
2023-04-01 19:46:35 +02:00
Martin Fouilleul
767841f9c6
[mtl canvas, wip] Fixed wrong backdrop when segment ended right on tile's bottom boundary
2023-03-30 16:41:41 +02:00