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