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