deepway

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  1 Posts :: 9 Stories :: 1 Comments :: 0 Trackbacks

常用链接

留言簿(4)

我参与的团队

搜索

  •  

最新评论

  • 1. re: 软件运行日志[未登录]
  • 我觉得调试日志不应该只记录软件的非正常过程吧,而是记录软件的运行过程。期间有不正常的时候用warning,error和fetal来记录。
  • --hi

2011年9月14日 #

GraphicsContext 定义了绘图操作环境。
A。基本功能是绘图操作:
   1. 简单几何图形:drawRect,drawLine,drawEllipse,drawConvexPolygon
                                         ,strokeArc,fillRect,fillRoundedRect,strokeRect,clearRect。
   2. 路径:drawPath,fillPath,strokePath。
   3. 图像:drawImage,drawTiledImage,drawImageBuffer。
   4. 文本:drawText,drawBidiText,drawHighlightForText,drawLineForText。
B。路径操作:
C。剪切操作:
D。绘图参数状态配置:
   1. 线条:strokeThickness,strokeStyle,strokeColor,strokeColorSpace,strokePattern,strokeGradient;
   2. 填充:fillRule,fillColor,fillColorSpace,fillPattern,fillGradient;
   3. 品质:shouldAntialias,imageInterpolationQuality,textDrawingMode;
   4. 状态:paintingDisabled;
E。绘图参数状态堆栈操作:

我们可以看出,绘图操作的大部分属性参数都是通过GraphicsContext的状态传递的。
那么,从性能的角度考虑,这样做好么,还是直接通过函数参数传递更好呢?

通过参数传递会带来一次参数出入堆栈操作;
通过GraphicsContext的状态传递,则会在每次参数变更时,进行一次参数出入堆栈操作和保存参数到状态的操作。
因此,当大多数绘图操作共用相同参数时,GraphicsContext的状态传递更加高效。

当然,还要考虑到GraphicsContext的状态栈操作会在每次场景切换是带来的额外开销。
posted @ 2011-09-14 14:27 maxime| 编辑 收藏