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