1.0.2 • Published 5 months ago
render-to-display v1.0.2
Direct2D Display
一个使用Windows Direct2D API实现的Node.js原生模块,用于在指定显示器上渲染文字内容。
功能特性
- 支持多显示器选择
- 实时文字渲染
- 可自定义文字内容、位置、大小、粗细
- 透明背景显示
- 高性能渲染(~60 FPS)
- 线程安全的配置更新
- 获取显示器信息
安装
npm install direct2d-display
需要Windows系统和Node.js环境。
使用示例
const { Direct2DDisplay, FontWeight } = require('direct2d-display');
// 创建实例
const display = new Direct2DDisplay();
// 启动渲染
display.start(0); // 使用第一个显示器
// 更新所有参数
display.updateAll(100, 200, "Hello Direct2D");
// 动态更新
let angle = 0;
setInterval(() => {
angle += 0.1;
const x = 500 + Math.sin(angle) * 200;
const y = 300 + Math.cos(angle) * 100;
display.updateAll(x, y, `坐标: (${x.toFixed(1)}, ${y.toFixed(1)})`);
}, 16);
// 修改样式
setTimeout(() => {
display.updateStyle(32, FontWeight.Bold);
}, 5000);
// 安全退出
process.on('SIGINT', () => {
display.stop();
process.exit();
});
API文档
FontWeight 枚举
定义字体粗细级别:
- Thin = 100
- ExtraLight = 200
- Light = 300
- Normal = 400
- Medium = 500
- SemiBold = 600
- Bold = 700
- ExtraBold = 800
- Black = 900
- ExtraBlack = 950
Direct2DDisplay
constructor()
创建Direct2DDisplay实例
start(displayIndex?: number): void
启动渲染线程
displayIndex
: 显示器索引,默认为0(主显示器)
stop(): void
停止渲染并清理资源
updateAll(x: number, y: number, text: string): void
更新所有渲染参数
x
: 水平坐标y
: 垂直坐标text
: 显示文本
注意事项
- 需要Windows 7及以上版本
- 需要安装Visual C++ Redistributable
- 文字渲染使用Arial字体
- 显示窗口为全屏无边框,可通过Alt+F4关闭
- 建议在主线程调用API,渲染在独立线程进行
开发
# 安装依赖
npm install
# 编译
npm run build
# 测试
npm test
License
MIT