summaryrefslogtreecommitdiff
path: root/Kernel/Syscall.cpp
diff options
context:
space:
mode:
authorAndreas Kling <awesomekling@gmail.com>2019-01-14 15:25:34 +0100
committerAndreas Kling <awesomekling@gmail.com>2019-01-14 15:25:34 +0100
commit0c5ecd303cb2e73d1226433b6b0f588f776af766 (patch)
tree782ee8da40f8d61bf519b3d24e75b2f1bfe0e89d /Kernel/Syscall.cpp
parentb0e3f733759a006622b14f75c5379641ef82776f (diff)
downloadserenity-0c5ecd303cb2e73d1226433b6b0f588f776af766.zip
Share GraphicsBitmaps between the windowing server and the client process.
This is pretty cool. :^) GraphicsBitmaps are now mapped into both the server and the client address space (usually at different addresses but that doesn't matter.) Added a GUI syscall for getting a window's backing store, and another one for invalidating a window so that the server redraws it.
Diffstat (limited to 'Kernel/Syscall.cpp')
-rw-r--r--Kernel/Syscall.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/Kernel/Syscall.cpp b/Kernel/Syscall.cpp
index a8b53db20d..df00742e51 100644
--- a/Kernel/Syscall.cpp
+++ b/Kernel/Syscall.cpp
@@ -191,6 +191,10 @@ static dword handle(RegisterDump& regs, dword function, dword arg1, dword arg2,
return current->gui$create_window((const GUI_CreateWindowParameters*)arg1);
case Syscall::SC_gui_destroy_window:
return current->gui$destroy_window((int)arg1);
+ case Syscall::SC_gui_get_window_backing_store:
+ return current->gui$get_window_backing_store((int)arg1, (GUI_WindowBackingStoreInfo*)arg2);
+ case Syscall::SC_gui_invalidate_window:
+ return current->gui$invalidate_window((int)arg1);
default:
kprintf("<%u> int0x80: Unknown function %u requested {%x, %x, %x}\n", current->pid(), function, arg1, arg2, arg3);
break;