mirror of
https://github.com/RGBCube/serenity
synced 2025-05-20 18:05:07 +00:00

To start painting, call: gui$get_window_backing_store() Then finish up with: gui$release_window_backing_store() Process will retain the underlying GraphicsBitmap behind the scenes. This fixes racing between the WindowServer and GUI clients. This patch also adds a WSWindowLocker that is exactly what it sounds like.
52 lines
1.5 KiB
C++
52 lines
1.5 KiB
C++
#include "gui.h"
|
|
#include <Kernel/GUITypes.h>
|
|
#include <Kernel/Syscall.h>
|
|
#include <errno.h>
|
|
|
|
int gui_create_window(const GUI_WindowParameters* params)
|
|
{
|
|
int rc = syscall(SC_gui_create_window, params);
|
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
|
}
|
|
|
|
int gui_invalidate_window(int window_id, const GUI_Rect* rect)
|
|
{
|
|
int rc = syscall(SC_gui_invalidate_window, window_id, rect);
|
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
|
}
|
|
|
|
int gui_get_window_backing_store(int window_id, GUI_WindowBackingStoreInfo* info)
|
|
{
|
|
int rc = syscall(SC_gui_get_window_backing_store, window_id, info);
|
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
|
}
|
|
|
|
int gui_release_window_backing_store(void* backing_store_id)
|
|
{
|
|
int rc = syscall(SC_gui_release_window_backing_store, backing_store_id);
|
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
|
}
|
|
|
|
int gui_get_window_title(int window_id, char* buffer, size_t size)
|
|
{
|
|
int rc = syscall(SC_gui_get_window_title, window_id, buffer, size);
|
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
|
}
|
|
|
|
int gui_set_window_title(int window_id, const char* title, size_t length)
|
|
{
|
|
int rc = syscall(SC_gui_set_window_title, window_id, title, length);
|
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
|
}
|
|
|
|
int gui_get_window_rect(int window_id, GUI_Rect* rect)
|
|
{
|
|
int rc = syscall(SC_gui_get_window_rect, window_id, rect);
|
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
|
}
|
|
|
|
int gui_set_window_rect(int window_id, const GUI_Rect* rect)
|
|
{
|
|
int rc = syscall(SC_gui_set_window_rect, window_id, rect);
|
|
__RETURN_WITH_ERRNO(rc, rc, -1);
|
|
}
|