Commit Graph

49 Commits

Author SHA1 Message Date
Martin Fouilleul 549e640102 making binding generator output explicit void for functions with no parameters. Fix oc_surface_canvas/oc_surface_gles to take explicit void 2023-09-28 21:29:03 +02:00
Ben Visness 4f0738fe64 Check for Xcode command-line tools 2023-09-25 11:28:52 +00: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 34127134d5 Bypass dumb powershell execution policy problems 2023-09-21 06:54:13 +00:00
Ben Visness 24d61aaeab Detect MSVC version and architecture via preprocessor 2023-09-21 06:53:35 +00:00
Martin Fouilleul 94ce88e272 [macos] use libtool instead of ar when building wasm3 lib, and pass -no_warning_for_no_symbols because translation units in wasm3 don't have symbols 2023-09-19 11:48:42 +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
Ben Visness ab3280ed4e Add extra checks for MSVC 2023-09-19 06:36:05 +00:00
Ben Visness d2e8430c49 Check if the runtime is up to date on dev install 2023-09-18 10:04:59 +00:00
Ben Visness 17beaef0e0 Slightly improve MSVC documentation and error messages 2023-09-18 10:01:44 +00:00
Reuben Dunnington 37655abbf5 wrap some paths to handle spaces on windows 2023-09-18 10:01:11 +00:00
Ben Visness bd780b20f3 Print help when running `orca source` 2023-09-16 15:46:00 -05:00
Reuben Dunnington 5b7e27f9fd
running orca with no args should print help instead of throw an error 2023-09-16 10:00:07 -07:00
Martin Fouilleul 00555dc03f Fix mistake I did when resolving conflicts in dev.py between #79 and #89 2023-09-16 18:55:25 +02:00
martinfouilleul 4865e2142d scripts/bundle.py: fix ext path in windows_make_app 2023-09-16 18:05:18 +02: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
Ben Visness 731b1c7334 Add uninstall command 2023-09-16 15:46:43 +00:00
Ilia Demianenko a5567da82c Clipboard handling 2023-09-13 16:59:26 +02:00
Martin Fouilleul db36158e7a check return pointer sizes in binding stubs 2023-09-12 17:06:01 +02:00
Martin Fouilleul d90c11db58 Save return pointer before calling native function in binding stubs 2023-09-12 15:03:56 +02:00
Reuben Dunnington be5b6aea30
vblank notification: win32 2023-09-08 20:58:11 -07: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
Reuben Dunnington d4cb93c61a
oc_runtime_window_set_title and oc_runtime_window_set_size 2023-08-24 11:42:27 -07:00
Martin Fouilleul 86b1121fbe allow enabling/disabling metal frame capture when bundling a macos app 2023-08-23 15:06:35 +02:00
Ben Visness 18069fbc58 Detect Orca source from anywhere and make scripts work from anywhere 2023-08-18 16:44:28 +02:00
Ben Visness 4ae8bc3bfa Put gles_gen.log in the build folder 2023-08-18 16:44:28 +02:00
Ben Visness 50f6ed8bec Automatically add Orca to the PATH on Windows 2023-08-18 16:44:28 +02:00
Ben Visness 570a33a0e1 Dodge AppData problems on Windows (#32) 2023-08-18 16:44:28 +02:00
Martin Fouilleul 75621d85a5 Big renaming and consistency pass, including:
- "Namespacing" the Orca APIs by adding the oc_ prefix everywhere
- Naming consistency tweaks, eg create_from_memory vs. create_from_data
- Adhering to a more consistent convention when pairing functions defining entities lifetime, eg. create/destroy, push/clear, alloc/recycle, init/cleanup
- Preferring oc_str8 to const char*, except when we expect lots of C string literals (e.g. when tagging UI widgets) or when it would be annoying to systematically wrap data we want to read/write into a string
- Reorganize macros for asserts/logging, and properly exposing them to the apps with non conflicting names
- Generally rearrange some bits and pruning unused stuff to make things more navigable
2023-08-18 16:30:55 +02:00
Martin Fouilleul cf88ba6290 This commit restructures the codebase to melt the milepost platform layer into the main orca codebase.
Here's a list of commits squashed in this update:

- move angle files to ext/ and pull includes/libs from there when needed
- remove milepost/ext/angle_headers
- Collapsed milepost/ext into ext
- Collapse milepost/scripts into scripts/
- collapse milepost/resources into resources/. WARN: this temporarily breaks milepost's native examples
- collapse milepost/test into test/
- renamed test/ to tests/
- build milepost directly into build/bin
- remove unused GLES and KHR folders from sdk/
- reorganizing milepost directory tree into app, graphics, platfrom, ui, util
- collapse milepost/src to src/
- Move all native examples to sketches/ and remove milepost repo
- Moving sketches resources into their own shared folder separate from the runtime's resource folder
- Moving all binding code to src/wasmbind
- Moving all binding code to src/wasmbind
- pong: fix typo in error log
- fixing log parameter order
- add error logs to mg_image_create_*
- Fix build scripts on windows
- fixed include mistake after rebase
- collapsing milepost.{h|c|m} to orca.{h|c|m} and moving from sdk/ to src/
- rename orca_app.h/main.c to runtime.h/c
- collapsed sdk/ to src/
- put old sdk files into their respective dirs
- renamed canvas_api.json to surface_api.json
- moved all stb headers in ext/stb/
- remove unused OpenSansLatinSubset.ttf font
- moving cstdlib to src/wasmlibc and removing some duplicates with src/platform
- move libc stdarg and string functions from platform/ to wasmlibc/
- rename wasmlibc to libc-shim to reflect non-completeness
- Expose abort/assert variadic functions and macros to orca apps, and forward libc-shim abort/assert to these
- move Orca API runtime implementations to runtime_xxx
- fix missing math constants when including math.h with msvc in graphics_common.c
- Change name of runtime to orca_runtime. When bundling on Windows, change name of runtime executable to the name of the app.
2023-08-13 15:28:57 +02:00
Martin Fouilleul e4d9955e83 [gles] expose GLES surface and GLES API to orca apps.
- Allow orca app to request either Canvas or GLES surfaces
- Add bounds check specifications to the json bindings spec format and to the bindings generator scripts.
- Generate GLES API json bindings spec from gl.xml
- Remove APIs that can't be bound with current wasm memory model (ie buffer mapping)
- Manually link remaining APIs, except glGetString
- Add fluid simulation sample
- Add abort messages for wasm loading and runtime fatal errors
- Adapt orca build tool to generate GLES json spec from gl.xml
- Adapt glesTriangle and fluid samples build scripts to new orca build tool
2023-08-08 22:54:29 +02:00
bvisness 3fae3252a1 Convert build scripts to Python (#31)
All the tooling has been built into a new command-line tool, `orca`. To use it, just run `orca -h`.

To build the samples, you must first install the orca tooling by running `orca dev install`. This simulates what it will be like to actually use the orca tooling as an end user, without the source checked out. Mostly. (I don't yet have it downloading pre-built copies of the Orca runtime libraries and `orca.exe`.)
Co-authored-by: Ben Visness <ben@bvisness.me>
Co-authored-by: Ben Visness <bvisness@gmail.com>
Co-authored-by: Martin Fouilleul <martinfouilleul@gmail.com>
Reviewed-on: #31
Co-authored-by: bvisness <ben@handmade.network>
Co-committed-by: bvisness <ben@handmade.network>
2023-08-08 09:38:43 +00:00
Reuben Dunnington a658e714c3
remove pthreads references from mkapp.py 2023-07-31 15:10:43 -07:00
Reuben Dunnington 71236240ab
fully replace bindgen.py with bindgen2.py
* Removes core_api and gles_api .txt bindings and replaces them with .json versions
* Rename bindgen2.py to bindgen.py, effectively deleting the old script
* Update build.bat to reflect new changes
2023-07-28 22:20:26 -07:00
Ilia Demianenko 5fa9c3c34c Fixes 2023-07-15 00:49:41 -07:00
martinfouilleul e31f6cd4ec [win32] Fix building the pong sample on win32 2023-07-02 12:50:32 +02:00
Martin Fouilleul 463e6322a4 - Changed mkapp.py flags to embed files and directories.
'--resource name' now copies file or directory 'name' into the app's private filesystem
'--resource-dir dir' copies all files _inside_ 'dir' into the app's private filesystem
2023-06-26 12:24:22 +02:00
Martin Fouilleul 571e8a6f8e Explicitly mark symbols imported from the runtime and avoid --allow-undefined (get compile-time errors on non-runtime-provided undefined symbols) 2023-06-25 20:18:14 +02:00
martinfouilleul be84dbc6d1 [win32, wip] Pong sample running on win32 (but debug overlay crashes the app). 2023-06-19 16:51:43 +02:00
Martin Fouilleul bfc81fd062 [io] check that file path doesn't escape app's local data folder when opening files 2023-05-11 19:42:12 +02:00
Martin Fouilleul 4ae51d7a23 [file io, wip] open/close file API 2023-05-11 19:42:12 +02:00
Martin Fouilleul 3874e798c3 Compile canvas command buffer into wasm and bind host surface/render API 2023-04-26 14:57:12 +02:00
Martin Fouilleul 28a4fe0579 First draft of in-app debug console 2023-04-20 15:47:18 +02:00
Martin Fouilleul 81ead1ba91 [in-app console]
- splitting input state from app structures in milepost, so that it can be used from another thread than main event thread.
- Adding a collapsable debug overlay to orca window (wip)
2023-04-19 11:28:53 +02:00
Martin Fouilleul 7884ddd339 puling logging functionality from milepost into orca 2023-04-18 18:06:47 +02:00
Martin Fouilleul 4f90efbb22 start integrating milepost components into orca 2023-04-17 10:56:38 +02:00
Martin Fouilleul db7fe504bb HMN viz jam 2023-04-14 11:48:36 +02:00
Martin Fouilleul 17c0f02962 orca runtime initial commit 2023-04-12 16:21:03 +02:00