|
21 | 21 |
|
22 | 22 | class HelmetScenario
|
23 | 23 | {
|
24 |
| - public static ContentIsland CreateIsland(Compositor compositor) |
| 24 | + public static async Task<ContentIsland> CreateIsland(Compositor compositor) |
25 | 25 | {
|
26 |
| - var visual = LoadScene_DamagedHelmet(compositor); |
| 26 | + var visual = await LoadScene_DamagedHelmet(compositor); |
27 | 27 |
|
28 | 28 | var island = ContentIsland.Create(visual);
|
29 | 29 | return island;
|
30 | 30 | }
|
31 | 31 |
|
32 |
| - private static Visual LoadScene_DamagedHelmet(Compositor compositor) |
| 32 | + private static async Task<Visual> LoadScene_DamagedHelmet(Compositor compositor) |
33 | 33 | {
|
34 | 34 | // Initialize Win2D, used for loading bitmaps.
|
35 | 35 |
|
@@ -68,55 +68,54 @@ private static Visual LoadScene_DamagedHelmet(Compositor compositor)
|
68 | 68 | // - Although Scene Graph objects prefer a UI thread, Win2D can load and create the bitmaps
|
69 | 69 | // on parallel background threads.
|
70 | 70 |
|
71 |
| - var vertexData = SceneNodeCommon.LoadMemoryBufferFromUriAsync( |
| 71 | + var vertexData = await SceneNodeCommon.LoadMemoryBufferFromUriAsync( |
72 | 72 | new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet6.bin"));
|
73 | 73 |
|
74 |
| - var normalData = SceneNodeCommon.LoadMemoryBufferFromUriAsync( |
| 74 | + var normalData = await SceneNodeCommon.LoadMemoryBufferFromUriAsync( |
75 | 75 | new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet7.bin"));
|
76 | 76 |
|
77 |
| - var texCoordData = SceneNodeCommon.LoadMemoryBufferFromUriAsync( |
| 77 | + var texCoordData = await SceneNodeCommon.LoadMemoryBufferFromUriAsync( |
78 | 78 | new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet8.bin"));
|
79 | 79 |
|
80 |
| - var indexData = SceneNodeCommon.LoadMemoryBufferFromUriAsync( |
| 80 | + var indexData = await SceneNodeCommon.LoadMemoryBufferFromUriAsync( |
81 | 81 | new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet9.bin"));
|
82 | 82 |
|
83 |
| - var canvasBitmap0 = CanvasBitmap.LoadAsync( |
84 |
| - canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet1.bmp")).AsTask(); |
| 83 | + //Task.WaitAll( |
| 84 | + // vertexData, normalData, texCoordData, indexData); |
85 | 85 |
|
86 |
| - var canvasBitmap1 = CanvasBitmap.LoadAsync( |
87 |
| - canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet2.bmp")).AsTask(); |
| 86 | + var canvasBitmap0 = await CanvasBitmap.LoadAsync( |
| 87 | + canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet1.bmp")); |
88 | 88 |
|
89 |
| - var canvasBitmap2 = CanvasBitmap.LoadAsync( |
90 |
| - canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet3.bmp")).AsTask(); |
| 89 | + var canvasBitmap1 = await CanvasBitmap.LoadAsync( |
| 90 | + canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet2.bmp")); |
91 | 91 |
|
92 |
| - var canvasBitmap3 = CanvasBitmap.LoadAsync( |
93 |
| - canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet4.bmp")).AsTask(); |
| 92 | + var canvasBitmap2 = await CanvasBitmap.LoadAsync( |
| 93 | + canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet3.bmp")); |
94 | 94 |
|
95 |
| - var canvasBitmap4 = CanvasBitmap.LoadAsync( |
96 |
| - canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet5.bmp")).AsTask(); |
| 95 | + var canvasBitmap3 = await CanvasBitmap.LoadAsync( |
| 96 | + canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet4.bmp")); |
97 | 97 |
|
98 |
| - Task.WaitAll( |
99 |
| - vertexData, normalData, texCoordData, indexData, |
100 |
| - canvasBitmap0, canvasBitmap1, canvasBitmap2, canvasBitmap3, canvasBitmap4); |
| 98 | + var canvasBitmap4 = await CanvasBitmap.LoadAsync( |
| 99 | + canvasDevice, new Uri("ms-appx:///Assets/SceneNode/DamagedHelmet5.bmp")); |
101 | 100 |
|
102 | 101 |
|
103 | 102 | // Generate mipmaps from the bitmaps, which are needed for 3D rendering.
|
104 | 103 |
|
105 |
| - var materialInput0 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap0.Result); |
106 |
| - var materialInput1 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap1.Result); |
107 |
| - var materialInput2 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap2.Result); |
108 |
| - var materialInput3 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap3.Result); |
109 |
| - var materialInput4 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap4.Result); |
| 104 | + var materialInput0 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap0); |
| 105 | + var materialInput1 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap1); |
| 106 | + var materialInput2 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap2); |
| 107 | + var materialInput3 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap3); |
| 108 | + var materialInput4 = SceneNodeCommon.LoadMipmapFromBitmap(graphicsDevice, canvasBitmap4); |
110 | 109 |
|
111 | 110 |
|
112 | 111 | // Copy loaded binary data into mesh: verticies, normals, ...
|
113 | 112 |
|
114 | 113 | var mesh0 = SceneMesh.Create(compositor);
|
115 | 114 | mesh0.PrimitiveTopology = DirectXPrimitiveTopology.TriangleList;
|
116 |
| - mesh0.FillMeshAttribute(SceneAttributeSemantic.Vertex, DirectXPixelFormat.R32G32B32Float, vertexData.Result); |
117 |
| - mesh0.FillMeshAttribute(SceneAttributeSemantic.Normal, DirectXPixelFormat.R32G32B32Float, normalData.Result); |
118 |
| - mesh0.FillMeshAttribute(SceneAttributeSemantic.TexCoord0, DirectXPixelFormat.R32G32Float, texCoordData.Result); |
119 |
| - mesh0.FillMeshAttribute(SceneAttributeSemantic.Index, DirectXPixelFormat.R16UInt, indexData.Result); |
| 115 | + mesh0.FillMeshAttribute(SceneAttributeSemantic.Vertex, DirectXPixelFormat.R32G32B32Float, vertexData); |
| 116 | + mesh0.FillMeshAttribute(SceneAttributeSemantic.Normal, DirectXPixelFormat.R32G32B32Float, normalData); |
| 117 | + mesh0.FillMeshAttribute(SceneAttributeSemantic.TexCoord0, DirectXPixelFormat.R32G32Float, texCoordData); |
| 118 | + mesh0.FillMeshAttribute(SceneAttributeSemantic.Index, DirectXPixelFormat.R16UInt, indexData); |
120 | 119 |
|
121 | 120 |
|
122 | 121 | // Initialize the material with different texture inputs (color, roughness, normals, ...)
|
|
0 commit comments