Compare commits

..

67 Commits

Author SHA1 Message Date
a770b67b08
wind: Show memory usage in debug output 2023-08-21 14:06:58 +02:00
e0fb90d97e
wind: Handle ftruncate() and mmap() errors properly 2023-08-21 14:06:58 +02:00
ce9d0f5856
wind: Fix client references being out-of-date in windows when disconnecting other clients
Classic "keeping a pointer to an element inside a vector after the vector is updated" bug, ah yes.
2023-08-21 14:06:58 +02:00
13a0d4860d
taskbar: Wait for terminated child windows 2023-08-21 14:06:57 +02:00
59915a5cd6
wind: Add debug keybind 2023-08-21 14:06:57 +02:00
f3fbfcf8fb
wind+libos+libui: Handle interrupted reads properly 2023-08-21 14:06:57 +02:00
f2e0c87dfc
base: Actually add the start icon to source control 2023-08-21 14:06:57 +02:00
ff1135c4b6
libui: Add Buttons 2023-08-21 14:06:57 +02:00
29d9620540
libui: Handle other mouse events 2023-08-21 14:06:57 +02:00
265c22ddaa
libui: Add aligned items using Containers, ImageWidget 2023-08-21 14:06:56 +02:00
75fb5dd98e
libui: Add VerticalLayout 2023-08-21 14:06:56 +02:00
64b93f6664
wind+libui+taskbar: Add GetScreenRect IPC, non-decorated windows, taskbar 2023-08-21 14:06:56 +02:00
105cd99fc9
libui: Actually fill window backgrounds with the correct color 2023-08-21 14:06:56 +02:00
c54d9d6bf8
libui: Add basic widget and layout system =D 2023-08-21 14:06:56 +02:00
23edc6e12a
ui+wind: Send mouse move events through IPC 2023-08-21 14:06:56 +02:00
f1d10af5b2
wind+libui: Add protocol for window close requests 2023-08-21 14:06:55 +02:00
89c11cdffe
libos+libui+wind: Use uppercase for static struct IDs to avoid confusion with fields 2023-08-21 14:06:55 +02:00
6cdc9ea40a
libui+gclient: Add basic OOP wrappers around the IPC protocol 2023-08-21 14:06:55 +02:00
ae4b383a16
wind+gclient: Add SetWindowTitle and support shm buffers 2023-08-21 14:06:55 +02:00
031b57b97a
gclient: Create two example windows 2023-08-21 14:06:55 +02:00
e37b2e7b07
wind: Handle CreateWindow IPC messages 2023-08-21 14:06:55 +02:00
78fb55112e
libui: Add CreateWindow IPC message definitions 2023-08-21 14:06:54 +02:00
311ca222d3
libos: Add basic IPC message framework 2023-08-21 14:06:54 +02:00
9d10e16760
kernel: Fix poll syscall 2023-08-21 14:06:54 +02:00
6e78cdc356
wind: Monitor data on client connections 2023-08-21 14:06:54 +02:00
20488d8413
kernel: Add POLLHUP and store it when a polled socket's peer disconnects 2023-08-21 14:06:54 +02:00
c84e4d661e
libui: Add copyright/author text 2023-08-21 14:06:54 +02:00
62b8455d52
libos: Add copyright/author comments to LocalServer and LocalClient 2023-08-21 14:06:53 +02:00
71598efb45
wind: Use init --user and pledge() 2023-08-21 14:06:53 +02:00
f60d11fc42
Update .gitignore 2023-08-21 14:06:53 +02:00
e188a61499
libos: Remove some shared pointers and change them to owned/live on the stack 2023-08-21 14:06:53 +02:00
34f54a2a16
wind: Spawn a new client process after startup
Also, create the socket after dropping privileges.
2023-08-21 14:06:52 +02:00
66a40d0951
apps: Add gclient 2023-08-21 14:06:52 +02:00
ae02a3edb0
libos: Add os::LocalClient 2023-08-21 14:06:52 +02:00
6316156f83
libui: Change 'into' to 'onto' 2023-08-21 14:06:52 +02:00
d75bce3b73
libui: Document ui::Font 2023-08-21 14:06:52 +02:00
265db4b081
libui+wind: Move some static variables inside functions 2023-08-21 14:06:52 +02:00
7fddffdbff
wind: Generate random windows on keypresses 2023-08-21 14:06:51 +02:00
4e9aea19ab
wind: Make sure windows have a minimum size to fit the titlebar 2023-08-21 14:06:51 +02:00
70e2d627bc
libui: Properly cut off the last drawn character if necessary 2023-08-21 14:06:51 +02:00
9db54a4d83
libui: Add Rect::contains(Rect) 2023-08-21 14:06:51 +02:00
3c3e5ece3d
libui: Render font characters properly with no spacing, matching the width calculations 2023-08-21 14:06:51 +02:00
707516276d
wind: Render an actual TGA mouse cursor 2023-08-21 14:06:51 +02:00
44206b1305
wind: Add a close button to windows using a TGA icon 2023-08-21 14:06:51 +02:00
357aefed54
libui: Add support for TGA image loading 2023-08-21 14:06:50 +02:00
94de39ca3d
libui: Add an interface to fill a Canvas with an array of pixels 2023-08-21 14:06:50 +02:00
382e2d7492
wind: Add window titlebars using ui::Font 2023-08-21 14:06:50 +02:00
aff08a2812
libui: Add PSF font loading and rendering 2023-08-21 14:06:50 +02:00
ea1c3a28ae
libui: Add Color::GRAY 2023-08-21 14:06:50 +02:00
1f2c8da478
libui: Rename Rect::absolute to normalized and add a new absolute function 2023-08-21 14:06:50 +02:00
9ac5b73f01
libluna: Add assignment operators to Buffer 2023-08-21 14:06:50 +02:00
8eca96de64
wind: Reorder drag sequence 2023-08-21 14:06:49 +02:00
94b1d47f1b
libui: Add Rect::relative 2023-08-21 14:06:49 +02:00
818909266d
libui: Remove redundant statement 2023-08-21 14:06:49 +02:00
954fdf43f1
libui: Add getters for separate color values 2023-08-21 14:06:49 +02:00
fd330452f5
libui: Remove unnecessary stuff 2023-08-21 14:06:49 +02:00
d3d9cc9c4f
base: Remove startup items not necessary for GUI startup 2023-08-21 14:06:48 +02:00
6696fd82a1
libui+wind: (Draggable) windows 2023-08-21 14:06:48 +02:00
ec8875e6ea
wind: Create a local server object 2023-08-21 14:06:48 +02:00
ba7be587ae
libos: Add a new LocalServer class for local domain sockets 2023-08-21 14:06:48 +02:00
0a75d3e5d8
kernel: Support listening sockets in poll() 2023-08-21 14:06:48 +02:00
5ab0ffd683
base: Start wind on startup instead of the shell 2023-08-21 14:06:48 +02:00
59c20b04ee
wind: Add a simple display server skeleton using libui
No client functionality yet, but it's a start.
2023-08-21 14:06:47 +02:00
3a61341381
libui: Add a GUI and graphics library 2023-08-21 14:06:47 +02:00
7cca3d092a
kernel: Fix negative movement in the PS/2 mouse driver 2023-08-21 14:06:47 +02:00
30ff704342
libluna+libos: Install built libraries into the system root
This is less important for libluna, as it is built into libc, but is needed to link programs compiled inside Luna with libos.
2023-08-21 14:06:32 +02:00
6e69d37d62
tools: Fix building ports from git repository 2023-08-19 19:54:37 +02:00
3 changed files with 13 additions and 1 deletions

@ -55,3 +55,8 @@ target_compile_options(luna-freestanding PRIVATE -mno-80387 -mno-mmx -mno-sse -m
target_compile_definitions(luna-freestanding PUBLIC ARCH_X86_64)
target_compile_definitions(luna PUBLIC ARCH_X86_64)
endif()
add_custom_command(
TARGET luna
COMMAND "${CMAKE_COMMAND}" -E copy ${CMAKE_CURRENT_BINARY_DIR}/libluna.a ${LUNA_BASE}/usr/lib/libluna.a
)

@ -27,3 +27,8 @@ target_include_directories(os PUBLIC ${LUNA_BASE}/usr/include)
if("${LUNA_ARCH}" MATCHES "x86_64")
target_compile_definitions(os PUBLIC ARCH_X86_64)
endif()
add_custom_command(
TARGET os
COMMAND "${CMAKE_COMMAND}" -E copy ${CMAKE_CURRENT_BINARY_DIR}/libos.a ${LUNA_BASE}/usr/lib/libos.a
)

@ -58,7 +58,7 @@ case $format in
tar xf $output
;;
git)
if ! [ -d $srcdir]; then
if ! [ -d $srcdir ]; then
echo "Cloning repository for $name..."
git clone $url $srcdir
else
@ -78,9 +78,11 @@ esac
if ! [ "$set_cc_variables" = "no" ]; then
export CC=x86_64-luna-gcc
export CXX=x86_64-luna-g++
export AR=x86_64-luna-ar
export PKG_CONFIG=luna-pkg-config
export CC_FOR_BUILD=gcc
export CXX_FOR_BUILD=g++
export AR_FOR_BUILD=ar
export PKG_CONFIG_FOR_BUILD=pkg-config
fi