封装说明
1、此次封装花了1天时间,网页已经卡得不行了,可能上下文太长导致,图层、字体族没法继续封装了。
2、此次引入智能指针,所有子类都用了成员变量,引用了官方宏管理类。
Direct2D 类库说明
1. 核心渲染能力 (Core Rendering)硬件加速:基于 DirectX 11.1 和 Direct2D 1.1,所有绘图操作均由 GPU 完成,极低 CPU 占用。 抗锯齿控制:支持实时切换平滑模式,保证矢量图形和边缘的清晰度。 透明度融合:完美支持 Alpha 通道,可实现细腻的半透明叠加和窗口毛玻璃效果。
2. 高级位图处理 (Advanced Imaging)多格式加载:通过 WIC 引擎支持 PNG, JPG, BMP, ICO 等多种图片格式。 位图信息获取:支持获取物理像素尺寸、逻辑 DIP 尺寸以及 DPI 分辨率。 高平滑缩放:绘制位图时支持高质量插值算法,缩放不失真。
3. 矢量路径与几何运算 (Geometry & Path)路径构建器:支持直线、圆弧、二次/三次贝塞尔曲线等复杂的路径组合。 几何体运算:支持路径的合并、相交、排除、异或(类似 PS 的布尔运算)。 线段样式:支持自定义虚线、线帽样式(平头、圆头、方头)以及连接处风格。
4. GPU 效果器链 (Hardware Effects)这是类库最强大的部分,支持通过 GUID 扩展无限种滤镜: 高斯模糊 (Gaussian Blur):实现毛玻璃或柔化效果。 投影与发光 (Shadow/Glow):基于正确的 GUID 实现图片或文字的阴影及外发光。 动态参数调节:支持在运行时实时调整模糊半径、阴影颜色等参数。
5. 离屏指令录制 (CommandList)无损录制:支持将绘图指令流录制到 CommandList 中,不损失矢量精度。 滤镜嵌套:文字或几何图形在录制后,可直接作为效果器的输入(实现发光文字的核心)。 高性能复用:复杂的背景只需录制一次,之后每帧直接绘制即可,无需重复计算绘图逻辑。
6. 矩阵变换系统 (Transform)
示例图示
1、完善了线帽、线类型
2、完善了画刷
3、完善了渲染目标切换、文字各类绘制
4、完善了位图绘制
5、完善了路径接口,现在可以一比一实现ZY大佬的示例绘制了
6、完善了图形合并
7、完善了矩阵变换
8、完善了位图效果器,图标为高斯模糊 + 阴影效果
完整源码下载
经过这次封装,发现了Web的弊端了,没法封装大型类库,上下文过长,会很卡很卡,
如果新开对话,得重头再来。而且,代码片段得手动复制,一不小心就会漏。蛋疼!
|