Harley

Results 47 comments of Harley

@WhiteRainbow 之前透明度问题的解决方案不完善,导致这里也出了问题。暂时可以通过把橡皮擦的 `opacity` 属性强制设为 `1`来解决。等后续优化了透明度那一块的逻辑之后可以彻底解决这个问题。

MaLiang's `Canvas` is not compatiable with `UIScrollView`, please use `ScrollableCanvas` instead

Zoom background with canvas is truly the problem now. In fact there's many problem with scrolling too. Zoomming feature is only at toy level currently. I'm not quite understand what...

@VJosan If you are tring to draw an image to the canvas, just use the **Chartlet** apis

自己给自己加班中。。。

@liufsd 这几个属性的访问权限忘了调整了,我来改一下。要对单个线条进行渐进恢复的话,需要深入到`LineStrip` 的 `lines` 属性了,思路是一样的。 不过现在 `redraw()` 函数确实存在性能问题,画布内容数量多的时候重绘的效率比较低(可以在缩放画布上测试,现在缩放的时候是每一帧调用 `redraw` 的),要避免高频调用。暂时还没有好的优化的办法,需要深入研究一下 Metal 的高阶用法。

嗯, 内容不多的话, 适当控制一下频率(比如每秒十次), 问题应该不大

`redraw` 要把内容提交到缓冲区,只能在主线程操作。数据量不大的话,可以考虑把数据操作也放在主线程,或许可以稍微提升一些速度。 不过从目前调试的结果来看,性能瓶颈主要在 buffer 的创建和释放上。

Metal 层要把需要显示的像素数据提交到缓冲区才能在屏幕上显示,`redraw` 会触发这一步操作,所以也要在主线程调用。

差不多是这样,其实恢复数据和绘制过程是很类似的,一个是通过用户手势触发相关操作,向 `canvas.data` 中添加数据,一个是由我们的程序主动向其中添加数据,最终结果是一样的。 用这种思路,甚至可以添加一些原本不是用户绘制的内容,这个就可以看上层 App 的发挥了。