这是一个关于如何为Cairo编写代码并考虑到性能的更一般性问题。
什么能带来更好的效果:
或者没有显着差异?或者也许只是油漆而不是中风/填充?它取决于绘制项目的数量吗?
一个真实世界的例子(高级代码),计算abc很简单:
save cr
set_source_color cr rgb1
loop 100 times
do calculations abc
draw box
end loop
fill cr
restore cr
set_source_color cr rgb2
loop 100 times
do calculations abc
draw arc
end loop
fill cr
restore cr
set_source_color cr rgb3
loop 100 times
do calculations abc
draw rectangle
end loop
fill cr
restore cr
或
loop 100 times
do calculations abc
set_source_color cr rgb1
draw box
fill cr
set_source_color cr rgb2
draw arc
fill cr
set_source_color cr rgb3
draw rectangle
fill cr
end loop
当然,这仅适用于所有方框都具有相同颜色的情况。否则必须使用选项2。
这是一个更普遍的问题,给出的示例只是说明我的示例场景清晰。请不要犹豫,深入/技术性地回答。