void EnsureMesh(ICanvasResourceCreator resourceCreator) { if (gradientMesh != null) { return; } CanvasGradientMeshPatch[] patchArray = new CanvasGradientMeshPatch[patchPoints.Count]; for (int i = 0; i < patchPoints.Count; ++i) { CanvasGradientMeshPatch patch; var points = patchPoints[i]; var colors = new Vector4[] { Color00.Color, Color03.Color, Color30.Color, Color33.Color }; var edges = new CanvasGradientMeshPatchEdge[] { Edge00To03, Edge03To33, Edge33To30, Edge30To00 }; if (patchPoints[i].Length == 12) { patch = CanvasGradientMesh.CreateCoonsPatch(points, colors, edges); } else { Debug.Assert(patchPoints[i].Length == 16); patch = CanvasGradientMesh.CreateTensorPatch(points, colors, edges); } patchArray[i] = patch; } // Gradient meshes are allowed to be zero-sized, so there is no need to // account for zero here. gradientMesh = new CanvasGradientMesh(resourceCreator, patchArray); }
void EnsureMesh(ICanvasResourceCreator resourceCreator) { if (gradientMesh != null) return; CanvasGradientMeshPatch[] patchArray = new CanvasGradientMeshPatch[patchPoints.Count]; for (int i=0; i<patchPoints.Count; ++i) { CanvasGradientMeshPatch patch; var points = patchPoints[i]; var colors = new Vector4[] { Color00.Color, Color03.Color, Color30.Color, Color33.Color }; var edges = new CanvasGradientMeshPatchEdge[] { Edge00To03, Edge03To33, Edge33To30, Edge30To00 }; if (patchPoints[i].Length == 12) { patch = CanvasGradientMesh.CreateCoonsPatch(points, colors, edges); } else { Debug.Assert(patchPoints[i].Length == 16); patch = CanvasGradientMesh.CreateTensorPatch(points, colors, edges); } patchArray[i] = patch; } // Gradient meshes are allowed to be zero-sized, so there is no need to // account for zero here. gradientMesh = new CanvasGradientMesh(resourceCreator, patchArray); }
/// <summary></summary> public static CanvasGradientMeshPatch CreateTensorPatch( global::Microsoft.Graphics.Canvas.Numerics.Vector2[] points, global::Windows.UI.Color[] colors, CanvasGradientMeshPatchEdge[] edges) { throw new System.NotImplementedException(); }