1

我正在开发一个触摸屏应用程序 (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 并将其用作转换的基础。但是,我不确定这是否是一个好方法。注意:我目前正在台式机上调试,但想针对平板电脑。我不得不考虑平板电脑要慢几个数量级。这就是我尝试优化此功能的原因。

谢谢!

4

0 回答 0