Exemplo n.º 1
0
        static async Task Main(string[] args)
        {
            var ep = new DnsEndPoint("pixelflut.uwu.industries", 1234);
            //var ep = new IPEndPoint(IPAddress.Parse("193.30.122.10"), 1234);

            var renderService = new PixelFlutLookupTableUnsafeRenderService(ServerCapabilities.None);

            //var outputService = new PixelFlutNullOutputService(new Size(1920, 1080));
            var outputService = new PixelFlutTcpOutputService(ep);
            //var outputService = new FileOutputService("C:\\Temp\\cards.px");

            var eh = new EffectHost(outputService.GetSize(), renderService);

            //await eh.AddEffect(new RandomBoxes(new Size(500, 500)));
            //await eh.AddEffect(new DrawImageStatic(@"C:\Temp\Test.jpg", Point.Empty));
            await eh.AddEffect(new DrawImageSolitaire(Directory.GetFiles("Resources/cards"), 4));

            //await eh.AddEffect(new VideoPlayback(@"C:\Temp\Test.mp4"));
            //await eh.AddEffect(new Effects.Void());

            await eh.AddOutput(outputService);

            eh.Start();

            var cts = new CancellationTokenSource();

            AppDomain.CurrentDomain.ProcessExit += (e, evArgs) => cts.Cancel();
            cts.Token.WaitHandle.WaitOne();

            eh.Stop();
            renderService.Dispose();
        }
        public void UnsafeRenderService_SimpleFrame_Correct()
        {
            var pixels = new[] {
                new OutputPixel(0, 0, 0xFFFF00FF),
                new OutputPixel(0, 1, 0xFF00FF00),
                new OutputPixel(1, 0, 0xFF0000FF),
                new OutputPixel(0, 0, 0xFFFFFF00),
            };

            var frame  = new OutputFrame(0, 0, pixels);
            var sut    = new PixelFlutLookupTableUnsafeRenderService(ServerCapabilities.None);
            var actual = Encoding.ASCII.GetString(sut.PreRender(frame));

            Assert.AreEqual("PX 0 0 FF00FF\nPX 0 1 00FF00\nPX 1 0 0000FF\nPX 0 0 FFFF00\n", actual);
        }
        public void UnsafeRenderService_TryToFuckItUpFrame_Correct()
        {
            var r = new Random();

            for (int i = 0; i < 10; i++)
            {
                var pixels = new List <OutputPixel>();
                for (int pxNum = 0; pxNum < 100000; pxNum++)
                {
                    pixels.Add(new OutputPixel(r.Next(2000), r.Next(2000), (uint)r.Next(0xFFFFFF) | 0xFF000000U));
                }

                var frame = new OutputFrame(0, 0, pixels.ToArray());

                var simpleSut = new SimpleRenderService();
                var unsafeSut = new PixelFlutLookupTableUnsafeRenderService(ServerCapabilities.None);

                var simpleFrame = Encoding.ASCII.GetString(simpleSut.PreRender(frame));
                var unsafeFrame = Encoding.ASCII.GetString(unsafeSut.PreRender(frame));

                Assert.AreEqual(simpleFrame, unsafeFrame);
            }
        }