LINUX.ORG.RU

История изменений

Исправление gagarin0, (текущая версия) :

в итоге да, я хочу получить WM

но пока задача стоит написать приложение, которое может отображать другое приложение, и пропихивать в него события

я так понимаю что мне нужно использовать что-то вроде

imgui + xlib

что-то в духе такого

https://github.com/rdbo/imgui-overlay/blob/master/overlay/main.cpp

int render_callback(struct window_info *winfo, GLFWwindow *glfw_window, void *arg) {
        Display *display = (Display *)arg;
	if (!init) {
		ImGuiContext *ctx = ImGui::CreateContext();
		ImGui::SetCurrentContext(ctx);
		ImGui_ImplGlfw_InitForOpenGL(glfw_window, true);
		ImGui_ImplOpenGL2_Init();
		init = true;
	}

	ImGui_ImplOpenGL2_NewFrame();
	ImGui_ImplGlfw_NewFrame();

	ImGui::NewFrame();

	glfwSetWindowAttrib(glfw_window, GLFW_MOUSE_PASSTHROUGH, GLFW_FALSE);
	glfwSetWindowAttrib(glfw_window, GLFW_MOUSE_PASSTHROUGH, GLFW_TRUE);
	
	ImGui::Render();
	int display_w, display_h;
        glfwGetFramebufferSize(glfw_window, &display_w, &display_h);
        glViewport(0, 0, display_w, display_h);
        glClearColor(0, 0, 0, 0);
        glClear(GL_COLOR_BUFFER_BIT);
	ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData())
}

Исходная версия gagarin0, :

в итоге да, я хочу получить WM

но пока задача стоит написать приложение, которое может отображать другое приложение, и пропихивать в него события

я так понимаю что мне нужно использовать что-то вроде

imgui + xlib