我正在开发一个触摸屏应用程序 (WinRT),目前在屏幕上绘制一些图形。因为它是触摸的,所以我想启用双指缩放来缩放整个内容。为了获得更好的体验,我只想在捏合手势完成后重新绘制图形。对于中间缩放,我想重用当前位图,并执行(如果可能)仅 gpu 缩放(放大位图)。基本上,我想做 iOS 和 Windows Phone 多年来一直在做的事情。
如何在 Direct2D 中实现这一点?
作为奖励,如果您知道有关 Direct2D 阅读的好资源,请告诉我。MSDN 文档真的很差,我必须寻找不同的博客和杂志文章来学习:(
到目前为止我尝试了什么:
m_target->SetTransform(
D2D1::Matrix3x2F::Scale(
D2D1::Size(1.5f, 1.5f),
D2D1::Point2F(500.0f, 500.0f))
);
但是,如果我对交互式元素(如页面放大/缩小)执行此操作,则会呈现所有对象(这也很慢)。另一种选择是绘制 BITMAP 并将其用作转换的基础。但是,我不确定这是否是一个好方法。注意:我目前正在台式机上调试,但想针对平板电脑。我不得不考虑平板电脑要慢几个数量级。这就是我尝试优化此功能的原因。
谢谢!