XAML과 DirectX 간에 interop 수행(C++ 및 XAML로 작성된 Windows 스토어 앱)

Applies to Windows only

출처: C++ 및 XAML을 사용하여 종단 간 Windows 스토어 앱 개발: Hilo

Patterns & Practices 로고

이전 페이지 | 다음 페이지

C++ 및 XAML로 작성된 Windows 스토어 앱을 개발하는 경우 Microsoft DirectX를 사용하여 성능을 향상하거나 앱의 자산을 더 효과적으로 재사용하려면 이 문서의 내용을 활용하여 시작할 수 있습니다.

다운로드

샘플 다운로드

이 빠른 시작에서는 SurfaceImageSource 클래스를 사용합니다. 이 클래스를 통해 XAML 요소 안에 DirectX 그래픽을 작성할 수 있습니다. 전체 화면 DirectX 스왑 체인 앞에 XAML을 표시해야 하는 경우 SwapChainBackgroundPanel 클래스를 사용해야 합니다. 자세한 내용은 DirectX 및 XAML interop를 참조하세요.

배울 내용

  • SurfaceImageSource 클래스를 사용하여 Windows 스토어 앱에서 XAML 및 DirectX 간에 interop를 수행하는 방법
  • DirectX를 사용하여 효과를 만들고 이미지에 적용하는 방법
  • XAML 기반 Windows 스토어 앱에서 Direct2D 이미지 효과를 제어하는 방법

적용 대상

  • Windows 8용 Windows 런타임
  • Visual C++ 구성 요소 확장(C++/CX)
  • XAML
  • DirectX

빠른 시작 빌드 및 실행

표준 프로젝트를 빌드하는 방식으로 DirectXRipple 프로젝트를 빌드합니다.

  1. 메뉴 모음에서 빌드 > 솔루션 빌드를 선택합니다. 빌드 단계에서 코드를 컴파일하고 Windows 스토어 앱으로 패키징합니다.
  2. 프로젝트를 빌드한 후에는 배포해야 합니다. 메뉴 모음에서 빌드 > 솔루션 배포를 선택합니다.
  3. 프로젝트를 배포한 후 DirectXRipple 타일을 선택하여 앱을 실행합니다. 또는 Microsoft Visual Studio의 메뉴 모음에서 디버그 > 디버깅 시작을 선택합니다. 디버거에서 앱을 실행하면 프로젝트가 배포됩니다.

초기 화면에서 이미지 로드 단추를 선택합니다. 파일 선택기를 사용하여 JPG 또는 PNG 파일을 선택한 다음 열기 단추를 선택합니다. 이미지가 로드되고 화면에 표시됩니다. 이미지에서 아무 지점이나 선택하여 잔물결 효과를 관찰합니다. 잔물결이 애니메이션되는 동안 다른 지점을 선택하면 잔물결의 중심이 해당 위치로 이동합니다. 애니메이션되는 동안 잔물결을 끌 수도 있습니다.

이미지에 적용된 잔물결 효과

[맨 위]

솔루션 구조

DirectXRipple Visual Studio 솔루션에는 다음과 같은 주요 클래스가 포함된 프로젝트 1개가 있습니다.

  • App 클래스. 앱에 대한 진입점을 지정하고 활성화 및 일시 중단 이벤트를 처리합니다.
  • BasicReaderWriter 클래스. 컴파일된 잔물결 효과 픽셀 셰이더에서 데이터를 읽습니다.
  • BasicTimer 클래스. 앱의 렌더링 루프를 구동하는 데 사용되는 타이머 클래스입니다.
  • D2DImageSource 클래스. DirectX 및 XAML 간의 interop 클래스입니다.
  • MainPage 클래스. 간단한 사용자 인터페이스가 포함된 XAML 기반 페이지 클래스를 정의합니다.
  • RippleEffect 클래스. 잔물결 효과를 픽셀 셰이더를 둘러싼 래퍼로 구현합니다.
  • RippleImageSource 클래스. D2DImageSource 클래스에서 상속되고 움직이는 잔물결 효과를 이미지에 적용합니다.
  • WICImage 클래스. WIC(Windows Imaging Component)를 사용하여 이미지를 로드하고 표시합니다.

DirectXRipple에 있는 대부분의 클래스를 거의 또는 전혀 수정하지 않고 다른 앱에서 다시 사용할 수 있습니다. DirectXRipple에서 제공하는 조직과 아이디어를 적절하게 수정할 수도 있습니다.

[맨 위]

코드 연습

이 샘플의 일부 중요한 부분에 대한 자세한 설명을 보려면 XAML 및 DirectX Interop 빠른 시작을 참조하세요.

 

 

표시:
© 2014 Microsoft