Commit Graph

154 Commits

Author SHA1 Message Date
Martin Fouilleul fb18d3240a Fix handling of wasm memory growing. Properly account for wasm3 header size, align on page boundary and return the previous size, asserting that there's enough memory for the requested chunk size. 2023-09-25 11:59:11 +02:00
Martin Fouilleul 388b059643 adding exp/expf 2023-09-24 18:44:32 +02:00
Martin Fouilleul b4aedb3ecc adding __math_xflowf 2023-09-24 11:15:08 +02:00
Reuben Dunnington 37c00bd42f fix compile errors with pow/powf 2023-09-21 06:52:14 +00:00
Martin Fouilleul 647565e285 Put offset curve sample check count in an enum to silence -Wgnu-folding-constant 2023-09-19 11:47:27 +02:00
Martin Fouilleul ecf89fa6b2 [macos build]
- Remove the need for -maes, silence warning about ignored option on ARM macs
- Set -mmacos-version-min when building wasm3 to match that of the platform layer and runtime
2023-09-19 09:56:46 +02:00
Martin Fouilleul 715ab0f6e3 put mtl renderer constants in an enum to silence -Wgnu-folding-constant warnings 2023-09-19 09:24:23 +02:00
Martin Fouilleul 370482a3e0 remove wrong alignment attribute of IM3Operation wasm3 2023-09-19 09:15:36 +02:00
Martin Fouilleul 827db17e14 update image atlas alloc functions to match image/font create functions 2023-09-19 09:10:06 +02:00
Martin Fouilleul 01565324c5 add extern C to libc-shim string.h in C++ mode 2023-09-19 08:57:23 +02:00
Reuben Dunnington ea74114693 windows: fix vsync logspam when window is minimized 2023-09-19 06:42:58 +00:00
Reuben Dunnington 4b30bd70d0 fix gl error spam when window is resized to 0 width/height 2023-09-19 06:37:46 +00:00
Reuben Dunnington 0d839a9767
call oc_on_mouse_wheel() when getting a wheel event 2023-09-18 19:17:31 -07:00
Martin Fouilleul 34303edd4e expose malloc/free to apps through libc-shim stdlib.h 2023-09-18 21:13:06 +02:00
Reuben Dunnington e85d774245 Bring over more math functions from musl
* asin
* asinf
* acosf
* tan
* tanf
* atan
* atan2
* atan2f
* atanf
* cbrt
* cbrtf
* log
* logf
* log2
* log2f
2023-09-18 10:21:49 +00:00
Martin Fouilleul 116e614ab6 Keep log format as "function() in file:line: msg", but pass the arguments in consistent order between the host and guest app. 2023-09-18 10:19:13 +00:00
Reuben Dunnington 44477782d8 logging: move parens to be in front of function 2023-09-18 10:19:13 +00:00
Ben Visness 29cb9f50e4 Add commands to deal with Orca source code:
- Add a vendor commands
- Add a command that helps you set up a C compiler
- Move ext into the src folder
- Update Mac build scripts for consistency
- Update Windows batch scripts
2023-09-16 17:54:56 +02:00
Martin Fouilleul 7d3f29e43b [ui layout]
- implement ui box min size, + small fixes in layout code of ui sample
- quick workaround for background showing on resize: clear to current theme's bg0 color
- precompute minsize based on children to avoid upward fixup step
- fix scrollable panel
- Simplify color overrides, override more things to counteract the light theme
- Change dragging to active for after #106 is merged
- when clamping box to minsize during shrinking, redistribute excess to siblings that still have some slack
- wrap demo in a scrollable panel

Co-authored-by: Ilia Demianenko <ilia.demianenko@gmail.com>
Co-authored-by: Martin Fouilleul <martinfouilleul@gmail.com>
2023-09-16 16:59:45 +02:00
Ilia Demianenko 33078fd9dc UI demo with styling 2023-09-16 16:59:45 +02:00
Martin Fouilleul 300d5aeab4 add a OC_UI_HOT style selector and use that to style radio buttons when the button's label is hovered 2023-09-16 16:33:08 +02:00
Martin Fouilleul d58643eb52 fix button & checkbox to return to normal styling when active but _not_ hovered 2023-09-16 16:18:23 +02:00
Ilia Demianenko efeac65a96 Only highlight the widgets on mouse down when they are also hovered 2023-09-15 15:00:33 -07:00
Martin Fouilleul 09cf30cf45 Consistency/intent
- pass arenas as first parameters (exception being texbox widget, where we always pass tag as first parameter)
- pass lists by value when there's no modification (eg oc_list_for etc...)
- fix sketches, use oc_arena_scope as value.
2023-09-14 11:54:38 +02:00
Martin Fouilleul 47dc052508 Minor consistency things:
- oc_window_style could be enum
- clikCount in oc_key_event to u8
- return of oc_input_key_press -> u8
- rename oc_key_pressed/released/repeated to oc_key_press/release/repeat_count to reflect meaning of return value
2023-09-14 10:47:10 +02:00
Martin Fouilleul 0e680c989b consistency: use _proc everywhere instead of _function or _callback in procedure typedefs. Also remove unused oc_live_resize_callback 2023-09-14 10:31:12 +02:00
Ilia Demianenko 73717b5dd8 Document palette colors 2023-09-14 07:42:09 +00:00
Ilia Demianenko d44ac5a1fb Use color + bgColor for selected radio instead of bgColor + borderColor 2023-09-13 14:02:50 -07:00
Ilia Demianenko 82aefaf758 Radio button group 2023-09-13 14:02:50 -07:00
Martin Fouilleul 8cd571f923 Remove oc_scratch()/oc_scratch_next() in favour of safer oc_scratch_begin()/oc_scratch_end() 2023-09-13 18:10:47 +02:00
Martin Fouilleul a0f9ab5f85 Allow building apps in C++ mode 2023-09-13 15:18:15 +00:00
Martin Fouilleul 0f3f7b5052 oc_runtime_clipboard_get_string() pushes to an arena, so to maintain oc_str8 conventions, we push an implicit null terminator after it 2023-09-13 17:05:15 +02:00
Ilia Demianenko a5567da82c Clipboard handling 2023-09-13 16:59:26 +02:00
Martin Fouilleul 7026919b38 pass both scancode and keycode to oc_on_key_up()/oc_on_key_down() 2023-09-13 16:33:28 +02:00
Martin Fouilleul a1ffcd3ddc [ui] macOS text edit shortcuts 2023-09-13 16:25:18 +02:00
Martin Fouilleul d53c688810 Keyboard layout support:
- Convey both fixed scancodes and keyboard-layout dependent keycodes in key events.
- Update scancode to keycode mapping when keyboard layout changes
- Allow querying key input state using either keycodes or scancodes
2023-09-13 16:22:33 +02:00
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