Martin Fouilleul
b9232b796c
Fix hang on quit. Closes #91
2023-09-12 09:36:32 +02:00
Martin Fouilleul
ce752713f6
oc_matrix_push() -> oc_matrix_multiply_push(), and add oc_matrix_push() to push a matrix on the stack as is
2023-09-11 20:02:46 +02:00
Martin Fouilleul
313f2e0ad4
Fix quit by sending an event to wakeup the main loop when calling oc_request_quit()
2023-09-11 18:36:40 +02:00
martinfouilleul
ab4abd28d7
Fix broken build on MSVC due to size_t being considered equivalent to u64 in _Generic associations
2023-09-11 18:09:47 +02:00
Martin Fouilleul
3e2f550b68
switch order of designated enums in strings, to make it easier to compile in c++ mode
2023-09-11 14:15:35 +02:00
Martin Fouilleul
dc837a6a6d
change len of strings to size_t
2023-09-11 12:53:15 +02:00
Martin Fouilleul
8d346eca90
flip order of len and ptr in oc_str8/16/32 structs, to make bindings easier
2023-09-11 12:53:15 +02:00
Ilia Demianenko
afbb4329f5
Fix scrolling
2023-09-11 09:43:58 +00:00
Martin Fouilleul
06a7642055
Licensing and copyright information
2023-09-11 11:09:47 +02:00
Ilia Demianenko
bb39bc7a13
Make arrow keys always move the cursor to the edge of the selection first
2023-09-11 09:08:47 +00:00
Martin Fouilleul
5cdded57b3
Replace confusing oc_text_bounding_box() with oc_font_text_metrics(), which returns both the logical metrics and ink bounding box of text
2023-09-10 19:25:41 +02:00
Martin Fouilleul
e6a3ac7694
oc_render uses currently selected surface
2023-09-10 15:21:11 +02:00
Martin Fouilleul
4b2580f510
Documentation and some API cleaning
...
- Fleshing out Readme
- Renaming pong to breakout
- Renaming triangleGLES to triangle
- Move cheatsheets to their own directory
- Cleanup clock example to use in QuickStart
- QuickStart.md
- Some API cleaning:
- oc_font_create_from_file()/oc_font_create_from_path()
- oc_image_create_from_file/oc_image_create_from_path
- oc_canvas_set_current() -> oc_canvas_select()
- some matrix helpers
2023-09-10 12:29:40 +02:00
martinfouilleul
9aad2c0ec8
Fix debug overlay vsync on windows
2023-09-10 12:28:53 +02:00
Martin Fouilleul
565bef5896
#if guard vsync API from Orca apps
2023-09-09 15:33:59 +02:00
Ilia Demianenko
18dff15cf1
Support double and triple click text selection
...
Higher order click processing courtesy of https://devblogs.microsoft.com/oldnewthing/20041018-00/?p=37543
2023-09-09 14:57:51 +02:00
Martin Fouilleul
5a7182a3b9
make vsync differences between win32 and macos explicit in runtime.c
2023-09-09 14:34:20 +02:00
Reuben Dunnington
6ae129022e
rework vsync to be manual wait for win32
2023-09-08 21:35:13 -07:00
Reuben Dunnington
d9703519b9
osx vsync notification
2023-09-08 20:58:14 -07:00
Reuben Dunnington
aa1c5ef915
cleanup dead code
2023-09-08 20:58:14 -07:00
Reuben Dunnington
be5b6aea30
vblank notification: win32
2023-09-08 20:58:11 -07:00
Ilia Demianenko
3bcbc76662
Make tooltip disappear on mouse leave
2023-09-08 14:35:42 +02:00
Ilia Demianenko
b4797dcd2d
Light UI theme
2023-09-08 12:22:03 +00:00
Martin Fouilleul
907f33bc27
[osx] quickfix for frame pacing on osx, keep swap interval to 1 for all surfaces
2023-09-08 10:32:59 +02:00
martinfouilleul
3effde949e
Fix file date on windows
2023-09-08 10:18:22 +02:00
Martin Fouilleul
8f413fdb46
fix auto-scrolling in debug UI (due to change in how oc_ui_panel() is structured)
2023-09-08 10:11:51 +02:00
Martin Fouilleul
a275b3da28
adding file timestamps to file_status
2023-09-07 10:09:26 +02:00
Reuben Dunnington
15a8e2ae22
wasm bindings: enforce pointer length
...
* bindgen.py: print an error when a pointer argument doesn't have an annotated length
* ensure all bindings with pointers have length annotations
* add a couple helper functions for dealing with length annotations
2023-09-07 07:51:23 +00:00
Ilia Demianenko
15bc29d703
Merge branch 'main' of git.handmade.network:hmn/orca into ui-redesign
2023-09-06 22:31:03 -07:00
Ilia Demianenko
aff03630da
Make UI look nicer
...
Design system by semi.design: https://semi.design/en-US/start/overview
SVG icon workflow:
- Find the SVG with devtools
- Copy curve path to https://yqnn.github.io/svg-path-editor/
- Scale X and Y by 1/size (usually 1/24)
- In `ui.c`, do offset and scale with a matrix transform, then the draw commands can use the exact numbers from the normalized SVG
2023-09-06 22:24:00 -07:00
Martin Fouilleul
425d9b3448
- Added basic cheatsheets
...
- Minor cleanups:
- Hiding some native-only path APIs
- Re-formatting ui.h
2023-09-06 08:58:43 +02:00
Martin Fouilleul
bd35b75f4b
Minor API cleanup:
...
- Removing unused remote/host surfaces for now
- Complete canvas attributes getters
- Separate surface creation APIs accessible by host and guest
- added oc_get_matrix(), removed oc_viewport()
- oc_get_clip -> oc_clip_top, oc_get_matrix -> oc_matrix_top
2023-09-06 08:58:04 +02:00
Martin Fouilleul
fbb03d27a3
Helpers for manipulating orca structs living in wasm memory:
...
- convert between wasm memory and native pointers, asserting on out-of-bounds
- oc_wasm_list helpers
- oc_wasm_str8 helpers
- pushing things to arenas in wasm memory
2023-09-02 18:07:57 +02:00
Martin Fouilleul
0205d90941
- Added oc_file_open_with_request() to request new file capability for a given path. This presents user with a message box allowing them to accept or deny the request.
...
- Added oc_file_open_with_dialog() to ask user to grant new file capabilities through an open/save dialog.
2023-09-02 11:00:28 +02:00
Martin Fouilleul
0db1589dc6
[canvas] remove degenerate point lines when encoding strokes
2023-09-01 19:40:37 +02:00
martinfouilleul
19ce7447aa
use app->quit on main thread instead of oc_should_quit(), to ensure that runloop_thread always exits its event loop before main thread
2023-08-30 12:06:32 +02:00
Martin Fouilleul
1907663cdc
Skip drawing ui box when it's rect + boders are fully outside current clip
2023-08-29 18:43:25 +02:00
martinfouilleul
46ef9ee7e8
don't hide debug overlay, paint it transparent instead, brought to you by Windows stuttering and crashing on close if you call SwapBuffer on a hidden window :*)
2023-08-29 16:14:20 +00:00
Martin Fouilleul
f268f031af
Set user-created surfaces to non-blocking and use the debug overlay surface to block on vsync.
2023-08-29 16:14:20 +00:00
Martin Fouilleul
07414af087
[mtl canvas] Fix nTilesX/nTilesY computation in oc_mtl_canvas_render (don't multiply twice by scale)
2023-08-29 18:13:01 +02:00
Martin Fouilleul
9164e66cc6
[mtl canvas] fixed bug were order of mtl_segment_setup arguments tileOpMax and segmentMax were interverted, which would cull tile ops based on max number of segments, causing weird artifacts for some lengths of the segment buffer
2023-08-29 17:36:30 +02:00
martinfouilleul
ec97c6d9ca
win32 implementation of oc_surface_bring_to_front/send_to_back
2023-08-28 17:04:55 +02:00
Martin Fouilleul
02bfe30672
Expose oc_surface_bring_to_front/send_to_back() to orca apps, and always bring debug layer to front when displaying it
2023-08-28 16:11:55 +02:00
Martin Fouilleul
b5034d3c81
[osx] implement oc_surface_bring_to_front() and oc_surface_send_to_back()
2023-08-28 15:48:24 +02:00
Reuben Dunnington
ceb4a3a95d
[osx canvas] Early out when eltCount or pathCount == 0, which avoid encoding empty passes and firing metal asserts when running in debug mode from xcode.
2023-08-28 12:16:31 +02:00
Martin Fouilleul
4b1ab4db97
expose oc_surface_contents_scaling() to get dpi scaling from a surface
2023-08-28 12:10:29 +02:00
Ilia Demianenko
3c199dce34
minor
2023-08-25 15:46:11 +02:00
Ilia Demianenko
53cf85db53
Support move/select/delete word with keyboard in textbox
2023-08-25 15:46:04 +02:00
Reuben Dunnington
1917085990
win32: initialize clock in oc_init()
2023-08-25 13:39:04 +00:00
Ilia Demianenko
396d52edcd
Clamp rounded rect radius
2023-08-25 13:33:49 +00:00