如何高效构建一个集约化且易于管理的自媒体网站博客?

摘要:网站博客自媒体轻松,集约化网站建设项目,做第三方库个人网站,平面设计师要学哪些软件ImGui 的主窗口是平台窗口,默认是可见的,这会影响视觉效果。那么怎么隐藏 ImGui 的主窗口
网站博客自媒体轻松,集约化网站建设项目,做第三方库个人网站,平面设计师要学哪些软件ImGui 的主窗口是平台窗口#xff0c;默认是可见的#xff0c;这会影响视觉效果。那么怎么隐藏 ImGui 的主窗口呢#xff1f; 这很简单#xff0c;但是需要针对后端做一些修改。 本文仅介绍在 glfwopengl3 和 win32dx11 两种实现上如何修改。 在 win32dx11 实现上#…ImGui 的主窗口是平台窗口默认是可见的这会影响视觉效果。那么怎么隐藏 ImGui 的主窗口呢 这很简单但是需要针对后端做一些修改。 本文仅介绍在 glfwopengl3 和 win32dx11 两种实现上如何修改。 在 win32dx11 实现上隐藏主窗口首先需要找到 issues 中关于窗口背景透明度的临时解决方案实施这些方案。我们最好在窗口透明的基础上隐藏平台窗口。 你可以参考 Add support for transparent backbuffers to GLFW contexts (OpenGL3 and Vulkan) by SageMade · Pull Request #2766 · ocornut/imgui 为 DX12 后端添加 DirectComposition 用于透明度 作者 Soreepeong ·拉取请求 #7462 ·奥科努特/IMGUI 然后我们现在可以为 Viewports 开启混合透明每像素透明度。然后设置 clear_color 的Alpha 通道数值为0也就是完全透明。 这样主视口ID: 0x11111111上面将不会渲染任何颜色。 1隐藏主视口的平台窗口 随后我们将 Win32 窗口的设置进行调整主要是消除任务栏图标、窗口边框、标题栏、以及使得窗口不遮挡任何屏幕内容。 你可能会觉得使用 WS_EX_TRANSPATENT 有用其实它只在使用分层透明度时候比较合适而分层透明的效率没有混合透明高所以我没采用。 然后我们在平台窗口创建时候指定 WS_POPUP WS_EX_TOOLWINDOW 以便于不在任务栏显示平台窗口的图标。 设置窗口位置大小为 pos (0,0) , size (1,1)矩形大小不能为 0为 0 会导致 Imgui 的一些异常状态最终导致界面无法响应。 其实到这里已经实现了隐藏主视口的平台窗口了。但是有一些细节仍需要处理。 接下来在 ImGuiWindow 结构中添加一个字段 bool WindowInitFocused。在 imgui_internal.h 中添加声明 IMGUI_API void FocusRootPlatformWindow(ImGuiWindow* window); 然后在 imgui.cpp 的最后添加实现 void FocusRootPlatformWindow(ImGuiWindow* window) {ImGuiContext g *GImGui;ImGuiWindow* rootWnd window-RootWindow;if (!rootWnd-WindowInitFocused) // I dont know why the status was overwritten{// Before updating the platform window data for the first frame, // PlatformUserData may be nullptr, and no actual processing should be performed at this time.if (rootWnd-Viewport-PlatformUserData nullptr) return;g.PlatformIO.Platform_SetWindowFocus(rootWnd-Viewport);rootWnd-WindowInitFocused true;} } 这样在 每次 ImGui::Begin() 后都可以调用一次 ImGui::FocusRootPlatformWindow(ImGui::GetCurrentWindow()); 来触发平台窗口的焦点获取ImGui 在获取焦点时候才会去检查更新 Viewport 和 Window 的关系。任务栏不显示图标的原因就在这里面但我还没有具体确定具体原因。强制平台窗口获取焦点暂时解决了任务栏不显示图标的问题。 当前的 WindowSelectViewport(window) 调用未来可能被重写会将 ImGui 窗口移动到新的 Viewport。
阅读全文