如何在D2D中执行整个屏幕的“便宜”规模?

时间:2012-03-13 07:53:41

标签: c++ windows-runtime direct2d

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

谢谢!

0 个答案:

没有答案