Реализация межпрограммного взаимодействия между XAML и DirectX (приложения Магазина Windows на C++ и XAML)

Из раздела Разработка комплексного приложения Магазина Windows на C++ и XAML: Hilo

Логотип Patterns and Practices

Предыдущая страница | Следующая страница

Если вы разрабатываете приложение Магазина Windows на C++ и XAML и хотите использовать Microsoft DirectX, чтобы улучшить производительность или более эффективно использовать ресурсы приложения, вы можете воспользоваться этой статьей, чтобы начать работу.

Скачать

Скачать образец

В этом кратком руководстве используется класс SurfaceImageSource, позволяющий создавать графические данные DirectX в элементе XAML. Если элемент XAML должен отображаться перед полноэкранной цепочкой буферов DirectX, следует использовать класс SwapChainBackgroundPanel. Подробнее см. в разделе Межпрограммное взаимодействие DirectX и XAML.

Содержание раздела

  • Осуществление взаимодействия между XAML и DirectX в универсальном приложении Windows с помощью класса SurfaceImageSource.
  • Использование DirectX для создания и применения эффекта к изображению.
  • Управление эффектом изображения Direct2D в универсальном приложении Windows на XAML.

Применимо к:

  • среде выполнения для Windows 8;
  • расширениям компонентов Visual C++ (C++/CX);
  • XAML.
  • DirectX

Краткое руководство: сборка и запуск

Выполните сборку проекта DirectXRipple так же, как и стандартного проекта.

  1. В строке меню выберите Сборка > Собрать решение. На этапе сборки код компилируется и упаковывается для использования в качестве приложения Магазина Windows.
  2. Когда сборка проекта выполнена, вы должны его развернуть. В строке меню выберите Сборка > Развернуть решение.
  3. Развернув проект, выберите плитку DirectXRipple для запуска приложения. Либо в строке меню Microsoft Visual Studio выберите команду Отладка > Начать отладку. Если приложение запускается в отладчике, Visual Studio развернет проект.

На начальном экране нажмите кнопку Загрузить изображение. Используйте средство выбора файлов для выбора JPG- или PNG-файла, после чего нажмите кнопку Открыть. Изображение будет загружено и выведено на экран. Выберите на изображении любую точку, чтобы пронаблюдать эффект ряби. Если при анимации эффекта ряби будет выбрана другая точка, центр ряби переместится в нее. Вы также можете перетаскивать рябь во время ее анимации.

Эффект ряби,  примененный к изображению

[Наверх]

Структура решения

Решение DirectXRipple Visual Studio содержит один проект, включающий следующие основные классы:

  • Класс App. Задает точку входа для приложения и обрабатывает события активации и приостановки.
  • Класс BasicReaderWriter. Считывает данные из построителя текстуры для скомпилированного эффекта ряби.
  • Класс BasicTimer. Класс таймера, применяемый для выполнения цикла обработки приложения.
  • Класс D2DImageSource. Класс межпрограммного взаимодействия между DirectX и XAML.
  • Класс MainPage. Определяет класс страницы XAML, содержащий простой пользовательский интерфейс.
  • Класс RippleEffect. Реализует эффект ряби как оболочку вокруг построителя текстуры.
  • Класс RippleImageSource. Наследует от класса D2DImageSource и применяет к изображению эффект движущейся ряби.
  • Класс WICImage. Использует компонент обработки изображений Windows для загрузки и отображения изображения.

Большинство классов DirectXRipple можно использовать в другом приложении без изменений или с минимальными изменениями. Вы также можете адаптировать организацию и назначение эффектов DirectXRipple.

[Наверх]

Обзор кода

Пошаговые инструкции для некоторых наиболее важных аспектов этого примера см. в разделе Краткое руководство: межпрограммное взаимодействие между XAML и DirectX.

 

 

Показ:
© 2015 Microsoft