Ejemplo n.º 1
0
        public override IEnumerator ReceivePayload(VisualPayload payload)
        {
            var textureSize = TextureSize.GetFirstValue(payload.Data);

            var newTexture = new Texture2D(textureSize, textureSize);

            var newPixels = new Color[textureSize * textureSize];

            var gradient = ColorGradient.GetFirstValue(payload.Data);

            for (int x = 0; x < textureSize; x++)
            {
                for (int y = 0; y < textureSize; y++)
                {
                    var proportion = x / (float)textureSize;
                    var color      = gradient.Evaluate(proportion);
                    newPixels[x + y * textureSize] = color;
                }
            }

            newTexture.SetPixels(newPixels);

            newTexture.Apply();

            TextureTarget.SetValue(newTexture, payload.Data);

            var iterator = Router.TransmitAll(payload);

            while (iterator.MoveNext())
            {
                yield return(null);
            }
        }