Commit Graph

99 Commits

Author SHA1 Message Date
Ilia Demianenko fd308f9a3a Zig UI demo 2023-10-03 02:00:20 -07:00
Reuben Dunnington 024a528afa
zig sample:
* generate a gradient image and draw it
* rbga8 color helpers and some const tweaks
2023-10-01 14:56:32 -04:00
Reuben Dunnington 49213353fc
zig bindings: namespace clock/canvas functions 2023-09-29 23:42:10 -04:00
Reuben Dunnington eb60729721
zig bindings: string refinements/bugfixes 2023-09-29 23:03:24 -04:00
Reuben Dunnington 9c4e2125c1
fleshing out oc_str* zig bindings 2023-09-29 20:14:51 -04:00
Reuben Dunnington 1af327d353
zig-sample: add README 2023-09-29 20:13:39 -04:00
Reuben Dunnington 7a91ba471e
zig-sample: fix build.zig to use correct cpu feature set 2023-09-29 20:13:38 -04:00
Reuben Dunnington db2828141f
adding more orca zig bindings 2023-09-29 20:13:38 -04:00
Reuben Dunnington 4fb25d1d49
wip zig orca bindings 2023-09-29 20:13:38 -04:00
Reuben Dunnington aa22491eb6
wip zig bindings 2023-09-29 20:13:38 -04:00
Reuben Dunnington e06e735902
wip zig orca bindings 2023-09-29 20:13:38 -04:00
Reuben Dunnington 5999429838
rename calc-zig to zig-sample 2023-09-29 20:13:38 -04:00
Reuben Dunnington ee2d14e0e7
wip orca zig bindings 2023-09-29 20:13:37 -04:00
Reuben Dunnington bded79d363
zig proof of concept is working 2023-09-29 20:13:37 -04:00
Reuben Dunnington 02c1938a43
wip trying to get orca wasm binary to build 2023-09-29 20:13:37 -04:00
Reuben Dunnington 0fd255682d
wip zig orca sample 2023-09-29 20:13:35 -04:00
Reuben Dunnington 9448104f41
macos: separate building orca core from samples 2023-09-25 22:36:02 -04:00
Reuben Dunnington aac74b0533
win32: separate building orca core from samples 2023-09-25 22:28:01 -04:00
Ben Visness 1cc8778982 Do clang checks on Mac 2023-09-25 11:28:52 +00:00
Ben Visness 75c4f6f94d Revamp Clang checks for Windows; still need to do the same for Mac 2023-09-25 11:28:52 +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
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
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 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
Martin Fouilleul 06a7642055 Licensing and copyright information 2023-09-11 11:09:47 +02: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
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 8fbfeab261 fix clock sample oc_runtime_window_set_size() -> oc_window_set_size() 2023-09-08 15:04:40 +02:00
Ilia Demianenko b4797dcd2d Light UI theme 2023-09-08 12:22:03 +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 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 fe25476305 remove stale comments in samples 2023-08-30 15:35:28 +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
Reuben Dunnington 9ed636e018
update samples for oc_window_set_content_size oc_vec2 change 2023-08-24 11:42:28 -07:00
Reuben Dunnington 81712c14c1
update samples with title/window size 2023-08-24 11:42:27 -07:00
Martin Fouilleul 42738195b5 Don't assume oc_scratch() is cleared at the frame boundary. Use oc_scratch_begin()/oc_scratch_end() instead 2023-08-23 16:24:13 +02:00
Martin Fouilleul 232c5f4f4c Fix exec permission on samples/clock/build.sh 2023-08-23 12:21:02 +02:00
Reuben Dunnington 4bde491a36 clock sample app 2023-08-23 12:16:32 +02:00
Reuben Dunnington f4a82cd381 pong: demo oc_request_quit() and oc_on_terminate()
* gamestate now records your score (total blocks destroyed)
* when all blocks are destroyed, quit
* print a message when the app is terminated
2023-08-22 21:32:13 +00:00
Martin Fouilleul 94b9cb2bbf Auto-formatting with clang-format 2023-08-19 15:52:11 +02:00