From f05adac1202d1fe0f1a35dac24145384eb63a4a6 Mon Sep 17 00:00:00 2001 From: Ben Visness Date: Sat, 16 Sep 2023 09:51:50 -0500 Subject: [PATCH] Update the README and quick start for launch --- Readme.md | 18 +++-- doc/QuickStart.md | 153 ++++++++++++++++++++++++-------------- doc/images/app_bundle.png | Bin 0 -> 38406 bytes doc/images/app_c.png | Bin 0 -> 26297 bytes 4 files changed, 108 insertions(+), 63 deletions(-) create mode 100644 doc/images/app_bundle.png create mode 100644 doc/images/app_c.png diff --git a/Readme.md b/Readme.md index ae95211..d33c71b 100644 --- a/Readme.md +++ b/Readme.md @@ -15,6 +15,8 @@ Orca is a development platform and runtime environment for cross-platform, sandb - Build user interfaces using our UI API and default widgets. - Read and write files using a capability-based API. +To learn more about the project and its goals, read the [announcement post](https://orca-app.dev/posts/230607/orca_announcement.html). + ## Installing The Orca command-line tools must be installed to your system in order to use them in your own projects. @@ -61,7 +63,7 @@ orca version If you encounter any errors, see the FAQ below. -Once the `orca` tools are installed, you can use them from anywhere to +Once the `orca` tools are installed and on your PATH, you can use them from anywhere. ### Building the sample Orca apps @@ -88,7 +90,7 @@ For a more thorough overview, please read the [Quick Start Guide](./doc/QuickSta The following additional resources may also help you familiarize yourself with Orca and its APIs: -- The [samples folder](./samples) contains sample applications that show various aspects of the Orca API and support library: +- The [samples folder](./samples) contains sample applications that show various aspects of the Orca API and core library: - [`breakout`](./samples/breakout) is a small breakout game making use of the vector graphics API. - [`clock`](./samples/clock) is a simple clock showcasing vector graphics and the time API. - [`triangle`](./samples/triangle) shows how to draw a spinning triangle using the GLES API. @@ -98,18 +100,22 @@ The following additional resources may also help you familiarize yourself with O ## FAQ -**What platforms does Orca supports?** +**What platforms does Orca support?** -We currently support Windows 10 and up, and macOS 10.15 and up. +We currently support Windows 10 and up, and macOS 10.15 and up. We plan to expand to more platforms in the future. **What languages can I use with Orca?** -In principle, you can use any language and toolchain that can produce a WebAssembly module and bind to the Orca APIs. However, several important parts of Orca, such as the UI, are provided as part of the support library, which must be compiled to WebAssembly with you app, and is written in C. Therefore, at this early stage, it may be difficult to use any language other than C. +In principle, you can use any language and toolchain that can produce a WebAssembly module and bind to the Orca APIs. However, several important parts of Orca, such as the UI, are provided as part of the core library, which must be compiled to WebAssembly with your app, and is written in C. Therefore, at this early stage, it may be difficult to use any language other than C. -C-style C++ is possible but requires compiling the support library in C as a separate object file, and then adding that object to your compile command when building your app. +C-style C++ is possible but requires compiling the core library in C as a separate object file, and then adding that object to your compile command when building your app. We're currently working with contributors to add support for Odin and Zig, and we look forward to expanding the number of officially-supported languages in the future. +**Which WebAssembly features does Orca support?** + +We currently use [wasm3](https://github.com/wasm3/wasm3) for our interpreter. We therefore support whatever features wasm3 supports. In practice this means all WebAssembly 1.0 features, bulk memory operations, and a couple other small features. + **I am getting errors about atomics when building the runtime on Windows.** Please ensure that you have the latest version of Visual Studio and MSVC installed. The Orca runtime requires the use of C11 atomics, which were not added to MSVC until late 2022. diff --git a/doc/QuickStart.md b/doc/QuickStart.md index 6ac8e10..6b9b4f5 100644 --- a/doc/QuickStart.md +++ b/doc/QuickStart.md @@ -6,51 +6,86 @@ -------- # Orca Quick Start Guide ---- -This is a short introduction to developping an application that can be run by the Orca runtime. We'll present the basic structure of an Orca application, and walk through a simple example in C. +This is a short introduction to developing an application that can be run by the Orca runtime. We'll present the basic structure of an Orca application, and walk through a simple example in C. + +## What is an Orca app? + +An Orca app is a WebAssembly module designed for the Orca runtime. Your app interacts with the Orca runtime via WebAssembly imports and exports. For example, you can import functions from the Orca runtime to get user input, and export functions to the Orca runtime to draw to the screen. + +Orca also ships with a core library, written in C, which facilitates interaction with the Orca runtime and provides features like UI. This library should be compiled along with your app as part of producing your WebAssembly module. + +You can, in principle, write an Orca app in any programming language that supports WebAssembly. However, at this early stage, C is the only officially supported language. + +![Basic structure of a C app](images/app_c.png) + +Once you have compiled your WebAssembly module, you can bundle this module into an executable using the `orca bundle` command. The application bundle can include images, fonts, or any other private data that the app needs in order to function. These files can be read or written from the app without asking the user for permission. The resulting Orca executables are therefore self-contained. + +![Example Orca application bundle](images/app_bundle.png) ## Basic structure Orca exposes a number of types and functions to applications. In order to use them the first thing to do is to include `orca.h`. -``` +```c #include ``` The Orca runtime manages the application's window and event loop. In order to receive a specific kind of event, you can define an associated _event handler_ and export it to the runtime. For instance, to be notified when your application's window is resized, you should define the `oc_on_resize()` handler: -``` +```c ORCA_EXPORT void oc_on_resize(u32 width, u32 height) { // handle the window resize event } ``` -The `ORCA_EXPORT` macro makes the handler visible to the orca runtime, which automatically binds it to the window resize event. +The `ORCA_EXPORT` macro makes the handler visible to the Orca runtime, which automatically binds it to the window resize event. -Handlers are optional. If you don't care about an event, you can just omit the associated handler. You probably want to define at least two important handlers: +Handlers are optional. If you don't care about an event, you can just omit the associated handler. However, you will almost certainly want to define at least two important handlers: -- `oc_on_init()` is called once when your application starts and can be use to initialize your application's resources +- `oc_on_init()` is called once when your application starts and can be use to initialize your application's resources. - `oc_on_frame_refresh()` is called when your application needs to render a new frame, typically tied to the refresh rate of the monitor. For a list of available handlers and their signatures, see the [app cheatsheet](../doc/cheatsheets/cheatsheet_app.h). -## Clock Example +## Clock example Let's look at the [clock example](../samples/clock). This is a simple app that shows an analog clock and showcases a couple of interesting Orca APIs. -Open [`main.c`](../samples/clock/src/main.c) and look at the definition of `oc_on_init()`. This handler is called when the applications starts, right after the application window has been created. +Open [`main.c`](../samples/clock/src/main.c) and look at the definition of `oc_on_init()`. This handler is called when the application starts, right after the application window has been created. The first thing we do here is set the title and dimensions of the window. We then create the graphics resources that we'll use to draw the clock onto the window. +```c +ORCA_EXPORT void oc_on_init(void) +{ + oc_window_set_title(OC_STR8("clock")); + oc_window_set_size((oc_vec2){ .x = 400, .y = 400 }); + // ... +} +``` + ### Graphics surfaces -The next line of `oc_init()` creates a _graphics surface_. A surface represents a destination you can draw into using a specific API. In this sample, we're going to use a canvas surface, which allows drawing with a 2D vector graphics API. Other samples use a GLES surface to draw with the OpenGL ES API. +The next line of `oc_on_init()` creates a _graphics surface_. A surface represents a destination you can draw into using a specific API. In this sample, we're going to use a canvas surface, which allows drawing with a 2D vector graphics API. Other samples use a GLES surface to draw with the OpenGL ES API. Before drawing into it, the surface must be selected as the current surface by calling `oc_surface_select()`. Once all drawing is done you can display the result by calling `oc_surface_present()`. +```c +oc_surface surface = { 0 }; +oc_canvas canvas = { 0 }; + +ORCA_EXPORT void oc_on_init(void) +{ + // ... + surface = oc_surface_canvas(); + canvas = oc_canvas_create(); + // ... +} +``` + ### Canvas After creating the surface, we create a _canvas_. A canvas holds some context for drawing commands, like the current color or stroke width, as well as a command buffer that records all drawing commands. All canvas drawing functions use an implicit _current canvas_. You can select a canvas to be the current canvas by calling `oc_canvas_select()`, as seen at the begining of `oc_on_frame_refresh()`. @@ -59,14 +94,17 @@ Canvas drawing functions like `oc_fill()` or `oc_stroke` merely add to the curre To summarize, the general structure of canvas drawing code is like the following: -``` -oc_canvas_select(canvas); // make the canvas current +```c +ORCA_EXPORT void oc_on_frame_refresh(void) +{ + oc_canvas_select(canvas); // make the canvas current -//... add commands to the canvas command buffer using drawing functions + //... add commands to the canvas command buffer using drawing functions -oc_surface_select(surface); // select the canvas surface -oc_render(canvas); // render the canvas commands into it -oc_surface_present(surface); // display the result + oc_surface_select(surface); // select the canvas surface + oc_render(canvas); // render the canvas commands into it + oc_surface_present(surface); // display the result +} ``` ### Drawing @@ -74,17 +112,16 @@ oc_surface_present(surface); // display the result Canvas drawing functions can be roughly divided into three groups: - Path functions like `oc_line_to()` or `oc_cubic_to()` are used to specify paths using lines and curves. -- Attributes setup functions like `oc_set_color()` or `oc_set_width()` are used to set attributes used by subsequent commands. +- Attribute setup functions like `oc_set_color()` or `oc_set_width()` are used to set attributes used by subsequent commands. - Command functions like `oc_stroke()` and `oc_fill()` encode commands into the canvas command buffer using the current path and attributes. Some helpers combine a path specification and a command, like `oc_circle_fill()`. As an example, the back of the clock is drawn using these two calls: -``` - // clock backing - oc_set_color_rgba(1, 1, 1, 1); - oc_circle_fill(centerX, centerY, clockRadius); +```c +oc_set_color_rgba(1, 1, 1, 1); +oc_circle_fill(centerX, centerY, clockRadius); ``` For a list of canvas drawing functions, see the [graphics API cheatsheet](../doc/cheatsheets/cheatsheet_graphics.h). @@ -100,30 +137,30 @@ The matrix on the top of the stack at the time a command is encoded is used to t You can see an example of using transform matrices when drawing the clock's hands: -``` - // hours hand - oc_matrix_multiply_push(mat_transform(centerX, centerY, hoursRotation)); - { - oc_set_color_rgba(.2, 0.2, 0.2, 1); - oc_rounded_rectangle_fill(0, -7.5 * uiScale, clockRadius * 0.5f, 15 * uiScale, 5 * uiScale); - } - oc_matrix_pop(); +```c +// hour hand +oc_matrix_multiply_push(mat_transform(centerX, centerY, hoursRotation)); +{ + oc_set_color_rgba(.2, 0.2, 0.2, 1); + oc_rounded_rectangle_fill(0, -7.5 * uiScale, clockRadius * 0.5f, 15 * uiScale, 5 * uiScale); +} +oc_matrix_pop(); ``` ### Fonts and text Going back to `oc_init()`, after creating a surface and a canvas, we create a font that we will use to draw the numbers on the clock's face: -``` - oc_unicode_range ranges[5] = { - OC_UNICODE_BASIC_LATIN, - OC_UNICODE_C1_CONTROLS_AND_LATIN_1_SUPPLEMENT, - OC_UNICODE_LATIN_EXTENDED_A, - OC_UNICODE_LATIN_EXTENDED_B, - OC_UNICODE_SPECIALS - }; +```c +oc_unicode_range ranges[5] = { + OC_UNICODE_BASIC_LATIN, + OC_UNICODE_C1_CONTROLS_AND_LATIN_1_SUPPLEMENT, + OC_UNICODE_LATIN_EXTENDED_A, + OC_UNICODE_LATIN_EXTENDED_B, + OC_UNICODE_SPECIALS +}; - font = oc_font_create_from_path(OC_STR8("/segoeui.ttf"), 5, ranges); +font = oc_font_create_from_path(OC_STR8("/segoeui.ttf"), 5, ranges); ``` The font is loaded from a font file located in a data folder inside the app bundle. By default, Orca apps use this data folder as their "root" for file operations. @@ -132,35 +169,37 @@ Along with the path of the font file, we pass to the creation function the unico We then use the font to draw the clock's face: -``` - // clock face - for(int i = 0; i < oc_array_size(clockNumberStrings); ++i) - { - oc_rect textRect = oc_text_bounding_box(font, fontSize, clockNumberStrings[i]); - textRect.h -= 10 * uiScale; // oc_text_bounding_box height doesn't seem to be a tight fit around the glyph +```c +// clock face +for(int i = 0; i < oc_array_size(clockNumberStrings); ++i) +{ + oc_rect textRect = oc_font_text_metrics(font, fontSize, clockNumberStrings[i]).ink; - const f32 angle = i * ((M_PI * 2) / 12.0f) - (M_PI / 2); - oc_mat2x3 transform = mat_transform(centerX - (textRect.w / 2), centerY + (textRect.h / 2), angle); - oc_vec2 pos = oc_mat2x3_mul(transform, (oc_vec2){ clockRadius * 0.8f, 0 }); + const f32 angle = i * ((M_PI * 2) / 12.0f) - (M_PI / 2); + oc_mat2x3 transform = mat_transform(centerX - (textRect.w / 2) - textRect.x, + centerY - (textRect.h / 2) - textRect.y, + angle); - oc_set_color_rgba(0.2, 0.2, 0.2, 1); - oc_text_fill(pos.x, pos.y, clockNumberStrings[i]); - } + oc_vec2 pos = oc_mat2x3_mul(transform, (oc_vec2){ clockRadius * 0.8f, 0 }); + + oc_set_color_rgba(0.2, 0.2, 0.2, 1); + oc_text_fill(pos.x, pos.y, clockNumberStrings[i]); +} ``` ### Logging and asserts -The runtime has a console overlay whose visiblity can be toggled on and off with `Shift + Cmd + D` on macOS, or `Shift + Ctrl + D` on Windows. Your application can log messages, warnings or errors to that console using the following functions: +The runtime has a console overlay whose visiblity can be toggled on and off with `⌘ + Shift + D` on macOS, or `Ctrl + Shift + D` on Windows. Your application can log messages, warnings, or errors to that console using the following functions: -``` +```c void oc_log_info(const char* fmt, ...); // informational messages void oc_log_warning(const char* fmt, ...); // warnings, displayed in orange. -void oc_log_error(const char* fmt, ...); // errors, displayed in red. +void oc_log_error(const char* fmt, ...); // errors, displayed in red. ``` If you started the application from a terminal, the log entries are also duplicated there. -You can assert on a condition using `OC_ASSERT(test, fmt, ...)`. If the test fails, the runtime displays a message box including your message, and terminates the application. +You can assert on a condition using `OC_ASSERT(test, fmt, ...)`. If the test fails, the runtime displays a message box and terminates the application. You can unconditionally abort the application with a message box using `OC_ABORT(fmt, ...)`. @@ -169,9 +208,9 @@ You can unconditionally abort the application with a message box using `OC_ABORT For more examples of how to use Orca APIs, you can look at the other [sample apps](../samples): - [breakout](./samples/breakout) is a mini breakout game making use of the vector graphics API. It demonstrates using input and drawing images. -- [triangle](./samples/triangle) shows how to draw a spining triangle using the GLES API. -- [fluid](./samples/fluid) is a fluid simulation using a more complex GLES setup. -- [ui](./samples/ui) showcases the UI API and Orca's default UI widgets. +- [triangle](./samples/triangle) shows how to draw a spining triangle using the GLES API. +- [fluid](./samples/fluid) is a fluid simulation using a more complex GLES setup. +- [ui](./samples/ui) showcases the UI API and Orca's default UI widgets. For a list of Orca APIs, you can look at the [API cheatsheets](../doc/cheatsheets). diff --git a/doc/images/app_bundle.png b/doc/images/app_bundle.png new file mode 100644 index 0000000000000000000000000000000000000000..ecb973ac4dcaa16d6ddc98a428a2dd80175086f7 GIT binary patch literal 38406 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 II}V=x55bib>i_@% literal 0 HcmV?d00001 diff --git a/doc/images/app_c.png b/doc/images/app_c.png new file mode 100644 index 0000000000000000000000000000000000000000..0ce9c680acec263fc5b8ad0b3f935a09e0db24ce GIT binary patch literal 26297 zcmXtz+JC_bcx7yQGws5}w27_k90= z>w-Od&VBBfnfJ_V;Ht_p7_UfPAs`@N$jM5oAs`^K0Y4?+m%x8^RS~5T5U3F3B*ip5 zj7~C9S6-{%45(;)t8);ag5avjURP+;$!Or7G}z|W6saa#C&5l6)drWuE$C_N8X^-3 z6zEZD9-sc)K8@R??X3y?@wVC<8}ZE=-}n3N`$ypK2ww-sMf$$rzV7+I`;I(G5TckU zcElT`+mK!ezw?wG@Ye(w3?B-m0)vqfq(x{Bx+r<2cA?a z9{TD7S%v}msQcWl(;Zo)SYH7iFskCa?KlzqKjCCfvL^ZGpL?5{ij*@;-;ZUK{J7ad zySo3=VKcSWUAykF2jQ^ze7GvFwx?s0ULxN_?F5J)jU%TNE zCyz?r;#!kqzTOX?X1!{&P`{_kX%)@e^WCeAhx1|9!-6DbwRt1&3jVzmb2X#4Vq~3M zr#ne1rKUY$2Xy>tcPb+P3dVT1(f{%PyPVd%I-GUY_E7!3P%Y6x=aox*8opG;HBZHed~{_^gK)8kigmQ2C!(*7c^%&HkJ_%|cgEmc3&ez_0`}3+@O1GZMr+LK zsPz`TnYX>ExPo;MJ}-tsUa&rDHRcfVW&YvzVm6URfs@tecK0hEBMWb?>(Sg{q5{i1 z%b%a+?i1ysdVj5O%^T!vRp=EGHyC&L9o}rmskEw31w4UA(s@+cFUAD!`udveSNWAl zVo12opLXQNP7li}OND*!exZmpJMCUhlTN)VYe;!l1#xrIvU1)VnJnX~JFd`gEG<$> zFC}$odq?iMli*3AlqF|7^X=VXZaBr1$|b#e(YGEf5yA1yc*^$#f&1D1MnaD_+lK>` z{u+&|Zs~_>?cUP-A>0x4TQlk^n)Al~?X;{39+0;-b4*-r$2wP6^Tsyf!3uhH)(OR3 zd+=Vb%U`)`J{L-^yI-^qEem7?v8|UID!Ms80mqMVkN1sOQpeq4+3dK;Q~66wvTtde zA8=<%b_I#05h}_Z)_-{AmneK?@$?GVOY8mJyid`WBtX75^48wz4hCLvU-$jk9fEoo zEAU%2Q^5V2yll2iyG((#U1PacXDgXmf9|jIPt@+v&ZT;rt3=%NliG3NbQ=soZCF_K zRY`Hy)JIAST3i)S%DUxn@a zHLQ)k_xAt2(wx=EiXn{`SoXa|-uGgZXNh&9q6tzBytX#*eZ!>=NfzG53F-T$zw7?S zt^6D1H$NFGJ%m%DSXyLdtWDg5-$;QFu@~w-B$etnes}xV)iD#(1Yv7vJv+0WE{a(b z!ydu}9nM!)O31#%qBt(GJ6?9^(5%p_SEEr#*08OQ0wZaG4rfa8^%`tT+?iJ+7;y!T z%4_QyPnsOJodgS4IavlINdsH|{Lp7MY|$`QHDaNsQ%Wmv&zzt!4WHA^)`riPBw_>Kx`Osk?3dO1I25-IDg~w(n z;ZE)^;?lDZzc#}uwFG}HTslJO<FgBh-z9K7+3)M+ExlVWZp<8b=KcQ{c8*K9!@9u)M}6kGjv)qTC0L=(781L}GV9FOkM zQp!FwQ_1#2NHVsCZ7;|VcajCy2(<8}pF0pMPFt-)kE?z8q%d=|?1!8{stkfQ3t9Hr zjyv!I(ab7HP9jea&YI;qY&>>*WEU&W;|Hf-EW~f7fGNr0Y zZxT`e`dc&1lC+3Ujl}dM7o4B2L4z-`+uYbJP+SZqBx^uK81mS6}JPoo@DMmZ%kS z^3nX{lCGj7MqdzYy4i}la)|#hT}0olMy0$Yibr)k)RNJ+obEC9g;D$C$?vv{vFQ-v zx~i41UyiSK->W2(zZT!1E$TQP~ougOJ7DQ(Q#O(~`{5^}lJS5eZ}omJi

8jcd4_QegcsIs?w-1~pT-uQ>9pHxmn>Bx$9h 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 M6V!Z literal 0 HcmV?d00001