/LGC设计模式/GUI 系统需求描述

400 篇文章 3 订阅
147 篇文章 0 订阅
GUI 系统需求描述
作者: 刘鹏
日期: 2009-09-21
文本总结了一个 GUI 系统需要具备的 features 及其需要考虑的问题。
核心需求
  • 体系结构 :C/S 架构,灵活,易于扩展
  • 消息驱动机制 :消息队列、消息循环、消息处理
  • 鼠标、键盘、触摸屏的事件处理
  • 高效的窗口剪切算法 :使用 Z 序管理窗口的覆盖关系;绘制窗口前要将多个 窗口映射到屏幕上,计算每个窗口受剪切的区域,被覆盖的部分被剪掉不绘 制,一个高效的窗口剪切算法非常重要3
  • 窗口管理器(Window Manager) : 窗口管理,可以考虑做一个窗口管理器抽象 层,使 GUI 不依赖于某个具体的窗口管理器;
  • 组合窗口管理器(Compositing window manager) : 多个 surface 的组合;
  • 强大高效的图形库 :支持 2D/3D,2D图形库(矢量的/栅格的),3D图形库 (OpenGL)
  • 图像处理能力
  • 半透明窗口、不规则窗口
  • 图形抽象层 :如 MiniGUI 的 GAL
  • 输入抽象层 :如 MiniGUI 的 IAL
  • 字体引擎 :text/font
  • 手势识别引擎(gesture recoginzation engine) : 点击、滑动(fling)、多点触摸等;可纯软件实现,也可硬件支持;
  • 窗口主题(theme)
  • 窗口界面描述(UI define files) :xml/css/JSON
  • 硬件加速功能
  • 支持定点数运算
  • 动画(animation)支持
  • SDK 和 IDE
  • 跨平台 :linux, unix, windows, MacOS X,......
  • testing framework
图形功能
  • 基本图元的绘制:点、线、多边形
  • alpha blend:可用于实现光源、火光、烟雾等;
  • clip:支持任意形状的剪切域;
  • Compositing images:Porter-Duff operation,12 种组合方式;
  • gamma 校正:可用于实现淡入、淡出、渐变等效果;
  • gradient 梯度:可用于渐变填充;
  • Patterns 填充样式;
  • shadow 阴影;
  • Transparency Layers
  • Bitmap Images and Image Masks
  • 粒子系统及其辅助设计工具
图像处理功能1 2
  • 多种图像格式的支持
  • 复制(duplicate)
  • Mode (RGB, Grayscale, indexed)
  • 缩放、平移、旋转
  • 颜色:color balance,brightness-contrast,levels
  • 图像 Alpha 值的调整
  • 模糊 (blur)
  • 增强 (enhance)
  • 扭曲 (distort):page curl, ripple, wave
  • 光照和阴影 (light and shadow)
  • 噪声 (noise) 处理
  • 边缘检测 (edge detect)
  • 卷积矩阵 (convolution matrix)
  • 图像处理辅助设计工具
高级需求
  • video support
  • audio support
  • database support
  • xml support
  • webkit integrated
  • language bind
  • online desktop,与 web 集成
说明
  • 消息驱动机制,拟支持等待多个事件源,如 socket, 子进程退出和内核事件等;并且要降低消息源与消息目标之间的耦合程度
  • 需要支持多种输入的设备:鼠标、键盘、触摸屏、jobstick、.....
  • 关于控件,使用容器机制分离控件的职责,将控件做成容器,它可以容纳其它控件,容器机制的实现是使用组合还是继承,据说前者更符合现代设计规则。
  • 使用 layout 机制,避免硬编码
  • resolution independence
  • text/font 模块需要考虑 Unicode 的支持,考虑 Bidi 文本的处理
另外需要考虑的几点
  • separate engine and UI code
  • not hard-coding:
    • layout information
    • screen resolutin
    • screen color depth
  • design scalability in mind from the very beginning.
Reference
  1. PhotoShop/Gimp Filter
  2. ActionScript3.0 的显示虑镜
  3. MiniGUI 的窗口剪切算法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值