Add initial QNX support to backends and example - #9492
Add initial QNX support to backends and example#9492mgorchak-blackberry wants to merge 4 commits into
Conversation
|
Hello Mike, Thanks for your PR. I'm generally trying to avoid hosting third-party backends for technologies that are going to be difficult for me to maintain. Can you consider a path for https://github.com/blackberry to instead host this, so the maintenance would more officially fall on Blackberry? A "clean" repo would essentially consist in the files you added to this PR. If you feel there's a strong reason not to, or that there would be an incentive for me to host this you can message me privately. Either way I would happily add all suitable links to it (in fact, I've already added this PR to https://github.com/ocornut/imgui/wiki/Bindings#qnx-screen as there's no reasons not too, until decided where it is hosted). If hypothetically I were to merge this in main repository:
Nitpicking:
This is just what I would do for imgui/backends/ as a minimalist maximizer, but hosted in any other repo it would be just as nice kept separately and closer to your standard. |
|
The amount of minor/noisy changes in examples also make it harder to find what the important changes are. imgui-a2426bb-WIP amend example_screen_vulkan example.patch Again, I'm not against upstreaming small changes but they need to be in sync between the 4-5 examples. |
Hi, I aligned the OpenGL3 and Vulkan examples with the SDL2 code and coding style as closely as possible. The diff is now minimal. |
|
Hi,
It is a little difficult to explain, but this work belongs to another department—the open-source team. I work in R&D Graphics, and our goals are somewhat different. Their team works on QNX Everywhere, porting additional open-source software to QNX Everywhere (free for non-commercial use). My goal, however, is to provide customers with ready-to-use solutions that are easy to integrate. We mainly use Dear ImGui for technology demonstrations and for prototyping or debugging versions of customer software in areas such as medical technology, robotics, and AI. I addressed all your comments except the one about the recursive QNX Makefile hierarchy. It is supposed to be structured this way, and it is not something I added. :) Thanks a lot! |
Summary
This PR adds native QNX Screen support to Dear ImGui.
It introduces a reusable QNX Screen platform backend and two complete example
applications:
example_screen_opengl3example_screen_vulkanThe OpenGL example uses the existing
imgui_impl_opengl3renderer backend withIMGUI_IMPL_OPENGL_ES3. No separate OpenGL ES renderer backend is required.The Vulkan example uses the existing
imgui_impl_vulkanrenderer backend andcreates the native Vulkan surface with
vkCreateScreenSurfaceQNX().Added files
Platform backend
backends/imgui_impl_screen.hbackends/imgui_impl_screen.cppbackends/imgui_impl_screen_keysym2ucs.inlExamples
examples/example_screen_opengl3/examples/example_screen_vulkan/The examples include QNX recursive Makefile hierarchies for:
aarch64x86_64Platform backend features
The QNX Screen backend currently supports:
QNX/X11-style key symbols are converted to Unicode before being submitted through
ImGuiIO::AddInputCharacter().The keysym conversion is based on the public-domain
keysym2ucsimplementation.