private PagePart Proceed(RenderingTask renderingTask)
        {
            var pdfFile = pdfView.PdfFile;

            pdfFile.OpenPage(renderingTask.Page);

            var    w = (int)System.Math.Round(renderingTask.Width);
            var    h = (int)System.Math.Round(renderingTask.Height);
            Bitmap render;

            try
            {
                render = Bitmap.CreateBitmap(w, h,
                                             renderingTask.BestQuality ? Bitmap.Config.Argb8888 : Bitmap.Config.Rgb565);
            }
            catch (IllegalArgumentException e)
            {
                return(null);
            }

            CalculateBounds(w, h, renderingTask.Bounds);
            pdfFile.RenderPageBitmap(render, renderingTask.Page,
                                     roundedRenderBounds, renderingTask.AnnotationRendering);

            return(new PagePart(renderingTask.Page, render,                    //
                                renderingTask.Bounds, renderingTask.Thumbnail, //
                                renderingTask.CacheOrder));
        }
Exemple #2
0
        public void TestFetchAllResources()
        {
            Logger logger = InitLogging(out string path);

            IDictionary <Uri, ResourceFuture> cache    = new ConcurrentDictionary <Uri, ResourceFuture>();
            IDictionary <Uri, RGridResource>  allBlobs = new ConcurrentDictionary <Uri, RGridResource>();
            HashSet <Uri> resourceUrls = new HashSet <Uri>()
            {
                new Uri("https://applitools.com/images/videos/step2.mp4"),
                new Uri("https://upload.wikimedia.org/wikipedia/commons/d/d8/NASA_Mars_Rover.jpg"),
                new Uri("https://www.wikipedia.org/portal/wikipedia.org/assets/img/Wikipedia-logo-v2.png"),
                new Uri("https://cdn.sstatic.net/Img/unified/sprites.svg?v=e5e58ae7df45"),
                new Uri("https://m.media-amazon.com/images/G/01/amazonglobal/images/Fuji/hero/English/SD10/2019/January/Fuji_EN_TallHero_ShipIL_Jan19_1X._CB458552189_.jpg"),
                new Uri("https://images-na.ssl-images-amazon.com/images/G/01/amazonglobal/images/Fuji/Dash/2018/December/Dash_M_AthleticShoes_dec18_1X._CB459955652_SY260_.jpg"),
                new Uri("https://target.scene7.com/is/image/Target/GUEST_9c641d16-d398-4902-8779-a688980cd199?wid=325&hei=325&qlt=80&fmt=webp"),
                new Uri("https://target.scene7.com/is/image/Target/GiftIdeas_CBimage_upload-190122_1548181114388?wid=328&hei=328&qlt=80&fmt=webp"),
                new Uri("https://applitools.com/images/artwork/homepage_banner.jpg"),
            };

            FileDebugResourceWriter debugResourceWriter = new FileDebugResourceWriter(path);
            RenderingTask           renderingTask       = new RenderingTask(logger, null, cache, null, null, debugResourceWriter);

            renderingTask.FetchAllResources_(allBlobs, resourceUrls);
            Stopwatch stopwatch = Stopwatch.StartNew();

            while (resourceUrls.Count > 0 && stopwatch.ElapsedMilliseconds < 10000)
            {
                Thread.Sleep(100);
            }

            Assert.AreEqual(0, resourceUrls.Count);
        }
Exemple #3
0
        public void TestParseScriptResult()
        {
            Logger logger = InitLogging(out string path);

            IDictionary <Uri, ResourceFuture>         cache    = new ConcurrentDictionary <Uri, ResourceFuture>();
            ConcurrentDictionary <Uri, RGridResource> allBlobs = new ConcurrentDictionary <Uri, RGridResource>();
            HashSet <Uri> resourceUrls = new HashSet <Uri>();

            FileDebugResourceWriter debugResourceWriter = new FileDebugResourceWriter(path);
            RenderingTask           renderingTask       = new RenderingTask(logger, null, cache, null, null, debugResourceWriter);

            VisualGridEyes eyes = new VisualGridEyes(new ConfigurationProviderForTesting());

            eyes.SetLogHandler(logger.GetILogHandler());

            IWebDriver webDriver = SeleniumUtils.CreateChromeDriver();

            webDriver.Url = "http://applitools.github.io/demo/TestPages/FramesTestPage/";
            eyes.InitDriver(webDriver);
            try
            {
                string    scriptResult = eyes.GetDomCaptureAndPollingScriptResult_();
                FrameData frameData    = JsonConvert.DeserializeObject <FrameData>(scriptResult);
                renderingTask.ParseScriptResult_(frameData, allBlobs, resourceUrls);
            }
            finally
            {
                webDriver.Quit();
            }
        }
Exemple #4
0
        //[Test]
        public void TestTryGetTextualData()
        {
            Logger logger = new Logger();

            logger.SetLogHandler(TestUtils.InitLogHandler());
            RenderingTask.TryGetTextualData_(null, null, logger);
        }
 protected void OnDownButtonClicked(object sender, System.EventArgs e)
 {
     ITreeNode[] selnodes = queue_nodeview.NodeSelection.SelectedNodes;
     if (selnodes.Length > 0)
     {
         RenderingTask seltask = ((RenderingTaskTreeNode)selnodes[0]).Task;
         mRenderingQueue.StepDown(seltask);
     }
 }
        public void AddRenderingTask(int page, float width, float height, RectF bounds, bool thumbnail, int cacheOrder,
                                     bool bestQuality, bool annotationRendering)
        {
            var task = new RenderingTask(width, height, bounds, page, thumbnail, cacheOrder, bestQuality,
                                         annotationRendering);
            var msg = ObtainMessage(MsgRenderTask, task);

            SendMessage(msg);
        }
Exemple #7
0
    public void AddTask(RenderingTask task, TaskCompleteCB taskCompleteCB)
    {
        if (task == null || taskCompleteCB == null)
        {
            return;
        }

        items.Add(new Item()
        {
            task = task, taskCompeteCB = taskCompleteCB
        });
    }
Exemple #8
0
    private void RenderingTaskCompleteCB(RenderingTask task)
    {
        for (int j = 0; j < task.NumItems(); ++j)
        {
            int   pixelIndex;
            Color finalColor;
            task.GetFinalData(j, out pixelIndex, out finalColor);
            ppmTexture.WriteAPixel(finalColor, pixelIndex);
        }

        ppmTexture.Complete();
    }
Exemple #9
0
        /// <summary>
        /// Добавить задачу для рендеринга
        /// </summary>
        /// <param name="parTask">Объект задачи для рендеринга</param>
        public void AddTask(RenderingTask parTask)
        {
            if (_nextRenderingTasks == null)
            {
                _nextRenderingTasks = new LinkedList <RenderingTask>();
            }

            _nextRenderingTasks.AddLast(parTask);

            RenderReady = false;
            _renderNeed = true;
        }
Exemple #10
0
        protected void OnQueueNodeviewCursorChanged(object sender, System.EventArgs e)
        {
            ITreeNode[] selnodes = queue_nodeview.NodeSelection.SelectedNodes;
            if (selnodes.Length == 0)
            {
                up_button.Sensitive     = false;
                down_button.Sensitive   = false;
                remove_button.Sensitive = false;
            }
            else
            {
                RenderingTask seltask = ((RenderingTaskTreeNode)selnodes[0]).Task;

                remove_button.Sensitive = true;
                up_button.Sensitive     = mRenderingQueue.IndexOf(seltask) > 0;
                down_button.Sensitive   = mRenderingQueue.IndexOf(seltask) < mRenderingQueue.Count - 1;
            }
        }
Exemple #11
0
        //[Test]
        public void TestCreatePutFutures()
        {
            Logger logger = InitLogging(out string path);

            FileDebugResourceWriter debugResourceWriter = new FileDebugResourceWriter(path);

            Applitools.Selenium.VisualGrid.VisualGridEyes eyes = new Applitools.Selenium.VisualGrid.VisualGridEyes(new ConfigurationProviderForTesting());

            IDictionary <Uri, ResourceFuture> cache     = new ConcurrentDictionary <Uri, ResourceFuture>();
            IDictionary <Uri, RGridResource>  resources = new ConcurrentDictionary <Uri, RGridResource>();

            RenderingTask renderingTask = new RenderingTask(logger, new CheckSettings(), cache, null, null, debugResourceWriter);

            List <PutFuture> allPuts       = null;
            RunningRender    runningRender = null;

            renderingTask.CreatePutFutures_(allPuts, runningRender, resources);
        }
Exemple #12
0
        public void TestParseInvalidSVGWithCommentOnTop()
        {
            Logger logger = new Logger();

            logger.SetLogHandler(TestUtils.InitLogHandler());

            HashSet <string> allResourceUris = new HashSet <string>();

            RenderingTask.TextualDataResource tdr = new RenderingTask.TextualDataResource()
            {
                MimeType     = "image/svg+xml",
                OriginalData = CommonUtils.ReadResourceBytes("Test.Eyes.Sdk.Core.DotNet.Resources.fa-regular-400.svg"),
                Data         = CommonUtils.ReadResourceFile("Test.Eyes.Sdk.Core.DotNet.Resources.fa-regular-400.svg"),
                Uri          = null
            };
            RenderingTask.ParseSVG_(tdr, allResourceUris, logger);
            Assert.AreEqual(0, allResourceUris.Count);
        }
Exemple #13
0
        public void TestParseValidSVGWithLinks()
        {
            Logger logger = new Logger();

            logger.SetLogHandler(TestUtils.InitLogHandler());

            HashSet <string> allResourceUris = new HashSet <string>();

            RenderingTask.TextualDataResource tdr = new RenderingTask.TextualDataResource()
            {
                MimeType     = "image/svg+xml",
                OriginalData = CommonUtils.ReadResourceBytes("Test.Eyes.Sdk.Core.DotNet.Resources.applitools_logo_combined.svg"),
                Data         = CommonUtils.ReadResourceFile("Test.Eyes.Sdk.Core.DotNet.Resources.applitools_logo_combined.svg"),
                Uri          = new Uri("https://applitools.github.io/demo/TestPages/VisualGridTestPage/applitools_logo_combined.svg")
            };
            RenderingTask.ParseSVG_(tdr, allResourceUris, logger);
            Assert.AreEqual(3, allResourceUris.Count);
        }
Exemple #14
0
        public void TestPrepareDataForRG()
        {
            Logger logger = InitLogging(out string path);

            FileDebugResourceWriter debugResourceWriter = new FileDebugResourceWriter(path);

            VisualGridEyes eyes = new VisualGridEyes(new ConfigurationProviderForTesting());

            eyes.SetLogHandler(logger.GetILogHandler());
            IDictionary <Uri, ResourceFuture> cache = new ConcurrentDictionary <Uri, ResourceFuture>();

            RenderBrowserInfo     renderBrowserInfo = new RenderBrowserInfo(400, 300, BrowserType.CHROME, "linux");
            List <VisualGridTask> taskList          = new List <VisualGridTask>()
            {
                new VisualGridTask(TaskType.Check, logger, new RunningTest(renderBrowserInfo, logger))
            };
            RenderingInfo renderingInfo = new RenderingInfo()
            {
                AccessToken = "TestToken", ResultsUrl = new Uri("localhost:12345"), ServiceUrl = new Uri("localhost:54321")
            };
            RenderingTask renderingTask = new RenderingTask(logger, new CheckSettings(), cache, taskList, renderingInfo, debugResourceWriter);

            IWebDriver webDriver = SeleniumUtils.CreateChromeDriver();

            webDriver.Url = "http://applitools.github.io/demo/TestPages/FramesTestPage/";
            eyes.InitDriver(webDriver);
            try
            {
                string          scriptResult   = eyes.GetDomCaptureScriptResult_();
                FrameData       frameData      = JsonConvert.DeserializeObject <FrameData>(scriptResult);
                RenderRequest[] renderRequests = renderingTask.PrepareDataForRG_(frameData);
                webDriver.Close();
            }
            finally
            {
                webDriver.Quit();
            }
        }
Exemple #15
0
 public RenderingTaskTreeNode(RenderingTask task)
 {
     mTask = task;
 }
Exemple #16
0
    protected virtual void Start()
    {
        int canvasWidth  = isScreenSize ? Screen.width : 200;
        int canvasHeight = isScreenSize ? Screen.height : 100;

        cam = CreateCamera(canvasWidth, canvasHeight);
        ppmTexture.Init(canvasWidth, canvasHeight);

        renderingTasksManager = new RenderingTasksManager();

        int           pixelIndex = 0;
        RenderingTask task       = null;
        int           itemsCount = 0;

        for (int j = 0; j < ppmTexture.Height; ++j)
        {
            for (int i = 0; i < ppmTexture.Width; ++i)
            {
                if (multiThreadRendering)
                {
                    if (itemsCount == 0)
                    {
                        task = new RenderingTask();
                        task.Init(this, cam, ppmTexture.Width, ppmTexture.Height, numSamples);
                        renderingTasksManager.AddTask(task, RenderingTaskCompleteCB);
                    }
                    task.AddItem(i, j, pixelIndex);
                    ++itemsCount;
                    if (itemsCount == RenderingTask.SIZE)
                    {
                        itemsCount = 0;
                    }
                    ++pixelIndex;
                }
                else
                {
                    Color color = Color.black;
                    for (int s = 0; s < numSamples; ++s)
                    {
                        float u = (i + RTMath.Rnd01()) / ppmTexture.Width;
                        float v = (j + RTMath.Rnd01()) / ppmTexture.Height;

                        RTRay ray = cam.GetRay(u, v);
                        color += GetColor(ray, 0);
                    }
                    color /= numSamples;
                    ppmTexture.WriteAPixel(color);
                }
            }
        }

        if (!multiThreadRendering)
        {
            ppmTexture.Complete();
            RenderingComplete();
        }
        else
        {
            renderingTasksManager.Start();
        }
    }