Interoperabilità tra XAML e DirectX (app di Windows Store in C++ e XAML)

Applies to Windows only

Da: Sviluppo di un'app end-to-end per Windows Store scritta in C++ e XAML: Hilo

Logo Patterns & Practices

Pagina precedente | Pagina successiva

Se stai sviluppando un'app per Windows Store con C++ e XAML e vuoi usare Microsoft DirectX per migliorare le prestazioni o riutilizzare le risorse della tua app in modo più efficace, puoi usare questo articolo come punto di partenza.

Download

Download dell'esempio

Questa guida introduttiva usa la classe SurfaceImageSource, che ti consente di comporre grafica DirectX all'interno di un elemento XAML. Se hai l'esigenza di visualizzare XAML davanti a una catena di scambio DirectX a schermo interno, dovresti usare la classe SwapChainBackgroundPanel. Per altre info, vedi Interoperabilità tra DirectX e XAML.

Contenuto della sezione

  • Come ottenere l'interoperabilità tra XAML e DirectX in un'app per Windows Store con la classe SurfaceImageSource.
  • Come usare DirectX per creare e applicare un effetto a un'immagine.
  • Come controllare un effetto immagine Direct2D in un'app per Windows Store basata su XAML.

Si applica a

  • Windows Runtime per Windows 8
  • Estensioni del componente di Visual C++ (C++/CX)
  • XAML
  • DirectX

Compilazione ed esecuzione della guida introduttiva

Crea il progetto DirectXRipple come un qualsiasi progetto standard.

  1. Nella barra dei menu scegli Compila > Compila soluzione. L'istruzione di compilazione compila il codice e lo assembla come app di Windows Store.
  2. Dopo aver compilato il progetto lo devi distribuire. Nella barra dei menu scegli Compila > Compila soluzione.
  3. Dopo aver distribuito il progetto, scegli il riquadro di DirectXRipple per eseguire l'app. Oppure, nella barra dei menu di Microsoft Visual Studio scegli Debug > Avvia debug. Se esegui l'app nel debugger, Visual Studio distribuisce il progetto.

Nella schermata iniziale scegli il pulsante Load Image. Usa la selezione file per selezionare un file JPG o PNG e quindi scegli il pulsante Apri. L'immagine viene caricata e visualizzata sullo schermo. Scegli un qualsiasi punto nell'immagine per osservare l'effetto increspatura. Se scegli un altro punto durante l'animazione, il centro dell'effetto di increspatura di sposta in quella posizione. Puoi anche trascinare l'increspatura durante l'animazione.

Effetto di increspatura applicato a un'immagine

[Torna all'inizio]

Struttura della soluzione

La soluzione di Visual Studio DirectXRipple contiene un solo progetto, che include queste classi principali:

  • Classe App. Specifica il punto di ingresso per l'app e gestisce gli eventi di attivazione e sospensione.
  • Classe BasicReaderWriter. Legge i dati dal pixel shader dell'effetto di increspatura compilato.
  • Classe BasicTimer. Classe timer usata per guidare il ciclo di rendering dell'app.
  • Classe D2DImageSource. Classe per l'interoperabilità tra DirectX e XAML.
  • Classe MainPage. Definisce una classe di pagina basata su XAML che contiene una semplice interfaccia utente.
  • Classe RippleEffect. Implementa l'effetto di increspatura come wrapper per un pixel shader.
  • Classe RippleImageSource. Eredita dalla classe D2DImageSource e applica l'effetto di increspatura mobile all'immagine.
  • Classe WICImage. Usa Windows Imaging Component (WIC) per caricare e visualizzare un'immagine.

Al massimo con poche modifiche puoi riutilizzare molte delle classi in DirectXRipple in un'altra app. Puoi anche adattare l'organizzazione e le idee di DirectXRipple.

[Torna all'inizio]

Simulazione di codice

Per una presentazione di alcuni degli aspetti importanti di questo esempio, vedi la guida introduttiva all'interoperabilità fra DirectX e XAML.

 

 

Mostra:
© 2014 Microsoft