-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Working on exaequOS
exaequOS (https://exaequos.com) is a Unix-like operating system fully running in a Web browser. It allows you to build and share cross platform applications written in various languages C, C++, Javascript, Lua, Tcl, Scheme, Forth, etc... There are running in WebAssembly in the Web browser.
You fill find the developer's guide here: https://www.exaequos.com/doc/build/html/dev.html
Raylib has been compiled in Web Assembly for the Web browser with OpenGL ES 3.0 (WebGL 2.0), GLFW3 and Wayland thanks to emscripten-exa toolchain. This toolchain is an adaptation of emscripten for supporting exaequOS syscalls.
There are 5 text editors embedded in exaequOS for editing source code and storing it in the local persistent file system:
- Monaco editor: /usr/bin/mc
- Vim: /usr/bin/vim
- microEMACS: /usr/bin/em
- nano: /usr/bin/nano
- ed: /usr/bin/ed
Note Files can be imported/exported into exaequOS with the exio
command line tool.
You will find source code on GitHub:
- exeaquOS kernel: https://github.com/baudaux/exa-kernel
- emscripten-exa: https://github.com/baudaux/exa-kernel
- exa-wayland: https://github.com/exaequos/exa-wayland
There are currently three ways of developping a Raylib app for exaequOS:
- In C/C++ with emscripten-exa toolchain
- In Javascript with QuickJS 2024-02-14
- In Lua with Lua 5.4.6 interpreter
Developer's guide explains how to use emscripten-exa toolchain for building an app in C/C++ from your host machine (using Docker or not).
Raylib bindings for QuickJS have been developped and source code is there: https://github.com/exaequos/raylib-qjs
These bindings include raylib, raymath and raygui. There are loaded with this line on top of the Javascript file:
import * as ray from 'raylib_qjs.so'
Example of Raylib app in Javascript:
import * as ray from 'raylib_qjs.so'
ray.InitWindow(800, 600, "Raylib app");
while (!ray.WindowShouldClose()) {
ray.BeginDrawing()
ray.ClearBackground(ray.RAYWHITE);
ray.DrawText("Raylib app in Javascript running in exaequOS", 100, 200, 20, ray.BLACK);
ray.EndDrawing()
}
ray.CloseWindow();
Raylib bindings for Lua have been developped partially: https://github.com/exaequos/raylib-lua
There are loaded with this line on top of the Lua file:
require "raylib_lua"
InitWindow(800, 600, "Raylib app")
while (not WindowShouldClose()) do
BeginDrawing()
ClearBackground(RAYWHITE)
DrawText("Raylib app in Javascript running in exaequOS", 100, 200, 20, BLACK)
EndDrawing()
end
CloseWindow()
Once developped, the app can be published on the exaequos store for being accessed by everybody. It can also be accessible from itch.io.
www.raylib.com | itch.io | GitHub | Discord | YouTube
- Architecture
- Syntax analysis
- Data structures
- Enumerated types
- External dependencies
- GLFW dependency
- libc dependency
- Platforms and graphics
- Input system
- Default shader
- Custom shaders
- Coding conventions
- Integration with other libs
- Working on Windows
- Working on macOS
- Working on GNU Linux
- Working on Chrome OS
- Working on FreeBSD
- Working on Raspberry Pi
- Working for Android
- Working for Web (HTML5)
- Working on exaequOS Web Computer
- Creating Discord Activities
- Working anywhere with CMake
- CMake Build Options
- raylib templates: Get started easily
- How To: Quick C/C++ Setup in Visual Studio 2022, GCC or MinGW
- How To: C# Visual Studio Setup
- How To: VSCode
- How To: Eclipse
- How To: Sublime Text
- How To: Code::Blocks