#applications #framework #cross-platform #windowing #notifications #graphical #b3

b3-core

一个跨平台框架,提供对图形应用程序主要元素的访问和管理

6 个版本 (3 个重大更新)

0.4.0 2024年6月6日
0.3.1 2024年6月5日
0.2.0 2024年6月4日
0.1.1 2024年6月4日
0.1.0 2024年5月31日

#758 in GUI

自定义许可

100KB
2.5K SLoC

B3. Core

Crates.io Version docs.rs GitHub License GitHub Actions Workflow Status

⚠️警告 此项目处于积极开发中。当前代码库可能不稳定且不完整,API 在未来版本中可能会有重大更改。在此阶段,强烈建议不要在发布构建中使用此 crate。

Preview

B3. Core 是一个跨平台框架,提供对图形应用程序主要元素的访问和管理

  • 包括鼠标、键盘和触摸板事件的事件,
  • 菜单:应用程序、上下文等,
  • 窗口,
  • 通知,
  • 托盘。

此框架深受 winit crate 的启发。

仓库

如果您想提交 拉取请求 或打开新的 问题,请确保您在 GitHub.com 上,而不是项目的镜像。

主要

镜像

路线图

  • macOS: 支持应用程序菜单
  • macOS: 支持系统事件
  • macOS: 支持窗口
  • macOS: 支持模态窗口
  • macOS: 支持通知

功能

功能 描述
dh 提供原始显示和窗口指针
通知 启用用户通知的支持

示例

项目在 examples 文件夹中包含一些示例。

示例 描述
hello-app 具有简单应用程序菜单的最小可行应用程序。此示例仅在支持主要应用程序菜单的操作系统上可见。
hello-window 具有多个窗口、通知和主要应用程序菜单的应用程序示例。
hello-vulkan Vulkan 初始化的示例。它需要额外的配置(见下文)。

要启动 hello-vulkan 示例,需要指定指向已安装 Vulkan 库的环境变量。为此,在项目根目录中创建 .env 文件

# Replace <...> by actual paths
cat <<EOT >> .env
VULKAN_SDK=<VULKAN_SDK_DIR>/<TARGET_PLATFORM_DIR>
PATH=<VULKAN_SDK_DIR>/<TARGET_PLATFORM_DIR>/bin:$PATH
DYLD_LIBRARY_PATH=<VULKAN_SDK_DIR>/<TARGET_PLATFORM_DIR>/lib:$DYLD_LIBRARY_PATH
VK_ICD_FILENAMES=<VULKAN_SDK_DIR>/<TARGET_PLATFORM_DIR>/share/vulkan/icd.d/MoltenVK_icd.json
VK_LAYER_PATH=<VULKAN_SDK_DIR>/<TARGET_PLATFORM_DIR>/share/vulkan/explicit_layer.d
EOT

许可

本项目遵循 MIT 许可协议

依赖项

~0.8–3MB
~66K SLoC