This commit is contained in:
parent
4ef760baa0
commit
f7f6aa20ab
3 changed files with 20 additions and 10 deletions
|
|
@ -14,11 +14,13 @@
|
||||||
namespace lt::surface {
|
namespace lt::surface {
|
||||||
|
|
||||||
template<int EventType>
|
template<int EventType>
|
||||||
int XEventTypeEquals(Display *, XEvent *event, XPointer winptr)
|
auto XEventTypeEquals(Display *display, XEvent *event, char *winptr) -> int
|
||||||
{
|
{
|
||||||
|
std::ignore = display;
|
||||||
return (
|
return (
|
||||||
event->type == EventType
|
event->type == EventType
|
||||||
&& *(reinterpret_cast<Window *>(winptr)) == reinterpret_cast<XAnyEvent *>(event)->window
|
&& *(std::bit_cast<const Window *>(winptr))
|
||||||
|
== std::bit_cast<const XAnyEvent *>(event)->window
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -100,7 +102,10 @@ void System::on_unregister()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void System::create_surface_component(ecs::EntityId entity, SurfaceComponent::CreateInfo info)
|
__attribute__((no_sanitize("memory"))) void System::create_surface_component(
|
||||||
|
ecs::EntityId entity,
|
||||||
|
SurfaceComponent::CreateInfo info
|
||||||
|
)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
auto &component = m_registry->add<SurfaceComponent>(entity, info);
|
auto &component = m_registry->add<SurfaceComponent>(entity, info);
|
||||||
|
|
@ -331,7 +336,10 @@ void System::modify_title(SurfaceComponent &surface, const ModifyTitleRequest &r
|
||||||
XStoreName(display, window, request.title.c_str());
|
XStoreName(display, window, request.title.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
void System::modify_resolution(SurfaceComponent &surface, const ModifyResolutionRequest &request)
|
__attribute__((no_sanitize("memory"))) void System::modify_resolution(
|
||||||
|
SurfaceComponent &surface,
|
||||||
|
const ModifyResolutionRequest &request
|
||||||
|
)
|
||||||
{
|
{
|
||||||
// surface.m_resolution = request.resolution;
|
// surface.m_resolution = request.resolution;
|
||||||
|
|
||||||
|
|
@ -340,7 +348,7 @@ void System::modify_resolution(SurfaceComponent &surface, const ModifyResolution
|
||||||
// XResizeWindow(display, window, width, height);
|
// XResizeWindow(display, window, width, height);
|
||||||
|
|
||||||
// get baseline serial number for X requests generated from XResizeWindow
|
// get baseline serial number for X requests generated from XResizeWindow
|
||||||
uint64_t serial = NextRequest(display);
|
auto serial = NextRequest(display);
|
||||||
|
|
||||||
// request a new window size from the X server
|
// request a new window size from the X server
|
||||||
XResizeWindow(display, window, static_cast<uint32_t>(width), static_cast<uint32_t>(height));
|
XResizeWindow(display, window, static_cast<uint32_t>(width), static_cast<uint32_t>(height));
|
||||||
|
|
@ -396,7 +404,7 @@ void System::modify_position(SurfaceComponent &surface, const ModifyPositionRequ
|
||||||
const auto &[x, y] = request.position;
|
const auto &[x, y] = request.position;
|
||||||
|
|
||||||
// get baseline serial number for X requests generated from XResizeWindow
|
// get baseline serial number for X requests generated from XResizeWindow
|
||||||
uint64_t serial = NextRequest(display);
|
auto serial = NextRequest(display);
|
||||||
XMoveWindow(display, window, static_cast<int>(x), static_cast<int>(y));
|
XMoveWindow(display, window, static_cast<int>(x), static_cast<int>(y));
|
||||||
|
|
||||||
// flush output queue and wait for X server to processes the request
|
// flush output queue and wait for X server to processes the request
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,6 @@ using test::expect_eq;
|
||||||
using test::expect_ne;
|
using test::expect_ne;
|
||||||
using test::expect_not_nullptr;
|
using test::expect_not_nullptr;
|
||||||
using test::expect_throw;
|
using test::expect_throw;
|
||||||
using test::expect_true;
|
|
||||||
using test::Suite;
|
using test::Suite;
|
||||||
|
|
||||||
[[nodiscard]] auto tick_info() -> app::TickInfo
|
[[nodiscard]] auto tick_info() -> app::TickInfo
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,10 @@ public:
|
||||||
|
|
||||||
void on_unregister() override;
|
void on_unregister() override;
|
||||||
|
|
||||||
void create_surface_component(ecs::EntityId entity, SurfaceComponent::CreateInfo info);
|
__attribute__((no_sanitize("memory"))) void create_surface_component(
|
||||||
|
ecs::EntityId entity,
|
||||||
|
SurfaceComponent::CreateInfo info
|
||||||
|
);
|
||||||
|
|
||||||
void tick(app::TickInfo tick) override;
|
void tick(app::TickInfo tick) override;
|
||||||
|
|
||||||
|
|
@ -45,12 +48,12 @@ private:
|
||||||
|
|
||||||
void modify_title(struct SurfaceComponent &surface, const struct ModifyTitleRequest &request);
|
void modify_title(struct SurfaceComponent &surface, const struct ModifyTitleRequest &request);
|
||||||
|
|
||||||
void modify_resolution(
|
__attribute__((no_sanitize("memory"))) void modify_resolution(
|
||||||
struct SurfaceComponent &surface,
|
struct SurfaceComponent &surface,
|
||||||
const struct ModifyResolutionRequest &request
|
const struct ModifyResolutionRequest &request
|
||||||
);
|
);
|
||||||
|
|
||||||
void modify_position(
|
__attribute__((no_sanitize("memory"))) void modify_position(
|
||||||
struct SurfaceComponent &surface,
|
struct SurfaceComponent &surface,
|
||||||
const struct ModifyPositionRequest &request
|
const struct ModifyPositionRequest &request
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue