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 { | ||||
| 
 | ||||
| template<int EventType> | ||||
| int XEventTypeEquals(Display *, XEvent *event, XPointer winptr) | ||||
| auto XEventTypeEquals(Display *display, XEvent *event, char *winptr) -> int | ||||
| { | ||||
| 	std::ignore = display; | ||||
| 	return ( | ||||
| 	    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 | ||||
| { | ||||
| 	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()); | ||||
| } | ||||
| 
 | ||||
| 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;
 | ||||
| 
 | ||||
|  | @ -340,7 +348,7 @@ void System::modify_resolution(SurfaceComponent &surface, const ModifyResolution | |||
| 	// XResizeWindow(display, window, width, height);
 | ||||
| 
 | ||||
| 	// 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
 | ||||
| 	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; | ||||
| 
 | ||||
| 	// 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)); | ||||
| 
 | ||||
| 	// 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_not_nullptr; | ||||
| using test::expect_throw; | ||||
| using test::expect_true; | ||||
| using test::Suite; | ||||
| 
 | ||||
| [[nodiscard]] auto tick_info() -> app::TickInfo | ||||
|  |  | |||
|  | @ -27,7 +27,10 @@ public: | |||
| 
 | ||||
| 	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; | ||||
| 
 | ||||
|  | @ -45,12 +48,12 @@ private: | |||
| 
 | ||||
| 	void modify_title(struct SurfaceComponent &surface, const struct ModifyTitleRequest &request); | ||||
| 
 | ||||
| 	void modify_resolution( | ||||
| 	__attribute__((no_sanitize("memory"))) void modify_resolution( | ||||
| 	    struct SurfaceComponent &surface, | ||||
| 	    const struct ModifyResolutionRequest &request | ||||
| 	); | ||||
| 
 | ||||
| 	void modify_position( | ||||
| 	__attribute__((no_sanitize("memory"))) void modify_position( | ||||
| 	    struct SurfaceComponent &surface, | ||||
| 	    const struct ModifyPositionRequest &request | ||||
| 	); | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue