Commit Graph

586 Commits

Author SHA1 Message Date
MartinFouilleul 0d920670a2 Merge pull request 'Small textbox fixes' (#41) from ilidemi/orca:textbox-fixes into main
Reviewed-on: #41
2023-08-18 16:31:20 +00:00
Ilia Demianenko 40887a9a2d Small textbox fixes
Lose focus on mouse click outside
Update selection while dragging outside the box
Stop trying to flip the selection on drag, keep shift+click
2023-08-18 18:15:39 +02:00
MartinFouilleul e0db03b51c Merge pull request 'clang-format' (#39) from clang-format into main
Reviewed-on: #39
2023-08-18 15:59:40 +00:00
Reuben Dunnington a931f08067
Merge branch 'main' into clang-format 2023-08-18 08:31:35 -07:00
Reuben Dunnington 9a125361d6 forward sys keys to default window proc to get alt+f4 handling 2023-08-18 17:22:08 +02:00
MartinFouilleul 78e09b3373 Merge pull request 'Python tooling improvements' (#44) from python-improvements into main
Reviewed-on: #44
2023-08-18 14:50:32 +00: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
Reuben Dunnington c8dc466449
pong: restore NOTE/TODO comment formatting 2023-08-15 11:57:00 -07:00
Reuben Dunnington 55347f315c
clang-format tweaks
* enforce unix-style line endings
* don't format comment leading spaces
* don't sort includes
2023-08-15 07:11:34 -07:00
Reuben Dunnington c99217920f
collapse some weird if formatting 2023-08-14 14:09:22 -07:00
Reuben Dunnington 69860792df
tweak pong main.c to keep matrix formatting 2023-08-14 11:53:12 -07:00
Reuben Dunnington aa09da6f20
add .clang-format 2023-08-14 11:52:41 -07:00
Martin Fouilleul 9ae9562ca7 remove .gitmodule 2023-08-13 15:38:48 +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
martinfouilleul 72bb238d08 [canvas] fix canvas max tile queue count. Off-by-one was causing some paths to be culled in segment setup shader's bounds check 2023-08-13 14:51:27 +02:00
martinfouilleul 39010f5365 untrack generated samples\fluid\src\glsl_shaders.h 2023-08-11 11:19:25 +02:00
Ilia Demianenko 9da38506ff Fix slider dragging 2023-08-11 08:44:19 +00:00
Ilia Demianenko aee51e62e3 Fix windows build scripts 2023-08-09 15:15:22 -07:00
Martin Fouilleul 4d11ed1be7 [doc] update readme to the new build tools and remove refs to milepost submodule 2023-08-09 12:18:52 +02:00
Martin Fouilleul e0662f3387 Merge remote-tracking branch 'milepost-origin/prepare_orca_submodule_merge' into main
This brings the old milepost submodule tree, along with its history, into the Orca repository, so we don't have to deal with git submodule issues anymore.
2023-08-09 11:42:07 +02:00
Martin Fouilleul c2fe529243 Preparing milepost submodule merge. Remove milepost submodule. 2023-08-09 11:39:45 +02:00
Martin Fouilleul 6d33ee45dd Preparing milepost submodule merge. Moving all files into milepost folder 2023-08-09 11:36:16 +02:00
Martin Fouilleul eb9db393ba Merge branch 'gl_texture_fetch_barrier_bit' into main 2023-08-09 10:56:18 +02:00
MartinFouilleul b6462ca5f8 Merge pull request '[win32] Use wheel scroll lines system setting to determine how much to scroll' (#7) from ilidemi/milepost:win32-scroll-lines into main
Reviewed-on: MartinFouilleul/milepost#7
2023-08-09 08:22:45 +00:00
Ilia Demianenko 60083c1f2e [win32] Use wheel scroll lines system setting to determine how much to scroll 2023-08-08 20:46:48 -07: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
Martin Fouilleul d01dc832fb [gles] Support for exposing GLES surfaces to orca apps
- update gles surface example
- add mp_dispatch_on_main_thread_sync() to osx threads
- add /experimental:c11atomics to glesTriangle build.bat
- mp_dispatch_on_main_thread_sync: win32 impl
- move mp_dispatch_on_main_thread_sync() on app layer
- configure dlmalloc to not assume contiguity. This allows us to reserve blocks on our end without trashing malloc-owned zones. This way we can add a block to store GL static strings when needed.
- implement deselect interface
- Log an error when an OpenGL function is called while no OpenGL API is selected, or if that function is not part of the selected API
- avoid dispatching calls to image or canvas API if surface is not selected. However, we could later allow it and temporarily select the surface _on behalf of the user_.
- Adding support for format string and optional parameters in assert macros
2023-08-08 22:15:53 +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
MartinFouilleul c103c001f7 Merge pull request 'Python build script updates' (#6) from build-python into main
Reviewed-on: MartinFouilleul/milepost#6
2023-08-08 09:32:41 +00:00
Ben Visness e20a743605 Delete build scripts in favor of parent orca scripts 2023-08-07 23:00:27 -05:00
Reuben Dunnington a658e714c3
remove pthreads references from mkapp.py 2023-07-31 15:10:43 -07:00
MartinFouilleul e642c38a4d Merge pull request 'mp_thread' (#26) from mp_thread into main
Reviewed-on: #26
2023-07-31 18:36:54 +00:00
Reuben Dunnington 164540ea8c
update milepost submodule 2023-07-31 11:10:03 -07:00
MartinFouilleul 6221370aa0 Merge pull request 'mp_thread' (#3) from mp_thread into main
Reviewed-on: MartinFouilleul/milepost#3
2023-07-31 18:06:54 +00:00
Reuben Dunnington 32ac59cd7e
fix compile error on macos 2023-07-31 09:46:18 -07:00
Reuben Dunnington b9bd2723a9
replace pthread with mp_thread 2023-07-30 21:35:08 -07:00
Reuben Dunnington 6ec113b708
examples: replace pthread with mp_thread 2023-07-30 21:21:25 -07:00
Reuben Dunnington 003af621a0
expose platform_thread.h to users of milepost 2023-07-30 21:08:29 -07:00
Reuben Dunnington ff5e6e6039
add win32 platform_thread.h implementation 2023-07-30 20:59:00 -07:00
Reuben Dunnington 58210d1884
reworking thread exit code API to make it easier on win32 2023-07-30 20:58:10 -07:00
Reuben Dunnington baab4036c4
platform thread naming pass 2023-07-30 19:28:15 -07:00
martinfouilleul a4763d2da8 [gl canvas] add texture memory barrier between raster pass and blit pass 2023-07-29 12:36:55 +02:00
MartinFouilleul 93acffa277 Merge pull request 'Fully replace bindgen.py with bindgen2.py' (#25) from bindgen2_all_apis into main
Reviewed-on: #25
2023-07-29 10:22:20 +00:00
Martin Fouilleul b77eba597b updating build.sh to reflect changes in bindings generation 2023-07-29 12:21:08 +02: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
Martin Fouilleul 835097f8b5 update milepost: allow renderer to use multiple image sources per batch 2023-07-28 10:58:26 +02:00