Example #1
0
        private void HandleDataGenerated(object sender, DataGeneratedEventArgs e)
        {
            // Save the internal result.
            if (!this.c_OnlyComparisonDataCheckBox.Checked)
            {
                this.m_Bitmaps.Add(AlgorithmTraceImageGeneration.RenderTraceResult(
                                       sender as RuntimeLayer,
                                       e.Data,
                                       e.GSArrayWidth,
                                       e.GSArrayHeight,
                                       e.GSArrayDepth));

                if (this.IsHandleCreated)
                {
                    this.Invoke(new Action(() =>
                    {
                        this.c_TraceProgress.Value += 1;
                        this.Text = "Trace Algorithm (" + (this.c_TraceProgress.Maximum - this.c_TraceProgress.Value) + " operations remaining)";
                    }));
                }
            }

            // Save the normal result.
            int computations;

            this.m_DisableHandlers();
            var data = (sender as RuntimeLayer)
                       .GenerateData(e.GSAbsoluteX - e.GSMaxOffsetX,
                                     e.GSAbsoluteY - e.GSMaxOffsetY,
                                     e.GSAbsoluteZ - e.GSMaxOffsetZ,
                                     e.GSArrayWidth,
                                     e.GSArrayHeight,
                                     e.GSArrayDepth, out computations);

            this.m_Bitmaps.Add(AlgorithmTraceImageGeneration.RenderTraceResult(
                                   sender as RuntimeLayer,
                                   data,
                                   e.GSArrayWidth,
                                   e.GSArrayHeight,
                                   e.GSArrayDepth));
            this.m_EnableHandlers();

            if (this.IsHandleCreated)
            {
                this.Invoke(new Action(() =>
                {
                    this.c_TraceProgress.Value += 1;
                    this.Text = "Trace Algorithm (" + (this.c_TraceProgress.Maximum - this.c_TraceProgress.Value) + " operations remaining)";
                }));
            }
        }
Example #2
0
        static void HandleDataGenerated(object sender, DataGeneratedEventArgs e)
        {
            var name = (string)(sender as RuntimeLayer).Userdata;

            if (!m_SaveNames.ContainsKey(name))
            {
                m_SaveNames[name] = 0;
            }
            m_SaveNames[name] += 1;

            // Save the internal result.
            var bitmap = AlgorithmTraceImageGeneration.RenderTraceResult(
                sender as RuntimeLayer,
                e.Data,
                e.GSArrayWidth,
                e.GSArrayHeight,
                e.GSArrayDepth);

            Console.WriteLine(name + ": " + m_SaveNames[name] + " (internal)");
            bitmap.Save("layer_" + ++m_Count + ".png");

            // Save the normal result.
            int computations;

            DisableHandler();
            var data = (sender as RuntimeLayer)
                       .GenerateData(e.GSAbsoluteX - e.GSMaxOffsetX,
                                     e.GSAbsoluteY - e.GSMaxOffsetY,
                                     e.GSAbsoluteZ - e.GSMaxOffsetZ,
                                     e.GSArrayWidth,
                                     e.GSArrayHeight,
                                     e.GSArrayDepth, out computations);
            var alt = AlgorithmTraceImageGeneration.RenderTraceResult(
                sender as RuntimeLayer,
                data,
                e.GSArrayWidth,
                e.GSArrayHeight,
                e.GSArrayDepth);

            Console.WriteLine(name + ": " + m_SaveNames[name] + " (normal)");
            alt.Save("layer_" + ++m_Count + ".png");
            EnableHandler();
        }