POLARISUI / C++ / 0.1.0

禁止商用。所有使用 PolarisUI 的应用必须公开完整源码。许可全文

Windows x64 / C++17 / OpenGL 3.3+ · 不依赖 Java/JNI · 版本与校验值

渲染与宿主集成

数据路径

  1. Win32 窗口将鼠标、滚轮、键盘和已提交的 Unicode 文字收集为一帧 Input。
  2. C++ Ui 根据稳定 ID 处理焦点、按下捕获、选择和滚动,向 Canvas 追加 64-float 绘制指令。
  3. GDI 将系统字体栅格化为灰度字形纹理图集;窗口和渲染器不访问 JVM。
  4. C GPU 引擎保存宿主 GL 状态,把宿主背景复制到离屏纹理,按 sigma 生成降采样模糊纹理。
  5. GLSL 3.30 按指令绘制玻璃、图形、文字和裁剪。玻璃边缘使用 SDF 法线偏移清晰背景采样;最后恢复宿主状态。

文件责任

路径责任构建依赖
include/polaris/ui.hppC++17 公开 API标准库
src/ui.cpp控件逻辑与绘制协议标准库
src/windows.cppWin32/WGL、GDI、IME、PNG 与生命周期Windows SDK
src/gpu.c独立 C/OpenGL 绘制引擎Windows SDK,不含 JNI
src/shaders.hpp内嵌的 7 组 GLSL无外部资源
scripts/import-renderer.mjs更新时从原 SDK机械生成上述 C/GLSL仅更新流程需要 Node 和完整 Java SDK 源码

与 Java 版的关系

复用 Java 2.4.5 同一套 GLSL 和 64-float GPU 指令。C++ 实现自身的窗口、系统字体、输入与立即模式控件,并以本机函数调用提交指令;不是通过 JNI 调用 Java 控件的包装层。

这使两个版本共享 tint/blur/refraction 等材质的渲染语义,但它们的控件 API、布局机制、文字渲染和 ABI 不相同。Java 名称空间仍为 polaris.sdk.ui,C++ 使用 polaris::ui。

集成约束

只支持单个活动 Renderer,绑定构造线程和当前 WGL context。Window 持有稳定 HDC 与自有 WGL context,析构时释放窗口资源并恢复此前存在的宿主 context。渲染器须在窗口之前销毁。

GPU 引擎沿用原型的进程级 GL 函数指针和材质资源,因此目前不提供多窗口并行、跨线程渲染或多个 context 的资源共享。截图读取本应用 framebuffer,不读取桌面、其他窗口或其他进程。