Как выполнить «дешевый» масштаб всего экрана в D2D? - PullRequest
1 голос
/ 13 марта 2012

Я работаю над приложением с сенсорным экраном (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 и использование его в качестве основы для преобразований. Однако я не уверен, что это хороший подход. Примечание. В настоящее время я выполняю отладку на рабочем столе, но хочу настроить таргетинг на планшеты. Я должен учитывать, что планшеты на несколько порядков медленнее. Вот почему я пытаюсь оптимизировать эту функциональность.

Спасибо!

...