Esempio n. 1
0
        public void Run(ScriptRunArgs args)
        {
            var fx = args.Graphics;

            fx.Clear(SystemColors.Control);
            fx.DrawString(Message, Font, Brushes.Black, 20, 20);
        }
Esempio n. 2
0
        private void pbRenderTarget_Paint( object sender, PaintEventArgs args )
        {
            var nowUtc = DateTime.UtcNow;
            var dt = (float)(nowUtc-PreviousFrameUtc).TotalSeconds;
            PreviousFrameUtc = nowUtc;

            if ( dt<0 ) dt=0;
            if ( dt>1 ) dt=1;

            T += dt;

            if ( LastCompiledScript != null ) try
            {
                var w = pbRenderTarget.ClientSize.Width;
                var h = pbRenderTarget.ClientSize.Height;
                using ( var bitmap = new Bitmap(w,h) )
                {
                    using ( var fx = Graphics.FromImage(bitmap) )
                    {
                        var script = LastCompiledScript;
                        var args2 = new ScriptRunArgs(fx,new Rectangle(0,0,w,h),T,dt);
                        Exception ex = null;
                        var render = new Thread(()=>{
                            try
                            {
                                script.Run(args2);
                            }
                            catch ( Exception tex )
                            {
                                ex = tex;
                            }
                        });
                        render.Start();
                        if (!render.Join(200))
                        {
                            render.Interrupt();
                            render.Abort();
                            LastCompiledScript = new ErrorScript( Font, "Script timed out rendering" );
                            LastCompiledScript.Run(args2);
                        }
                        else if ( ex != null )
                        {
                            throw ex;
                        }
                    }
                    args.Graphics.DrawImage( bitmap, new Rectangle(0,0,w,h) );
                }
            }
            catch ( Exception e )
            {
                if (!CodeExceptions)
                {
                    CodeExceptions = true;
                    lvErrors.Items.Add( new ListViewItem(new[]{"Exception", "Exception running script"}) );
                    lvErrors.Items.Add( new ListViewItem(new[]{"Exception Type", e.GetType().FullName}) );
                    lvErrors.Items.Add( new ListViewItem(new[]{"Exception Message", e.Message}) );
                }
            }
        }
Esempio n. 3
0
        private void pbRenderTarget_Paint(object sender, PaintEventArgs args)
        {
            var nowUtc = DateTime.UtcNow;
            var dt     = (float)(nowUtc - PreviousFrameUtc).TotalSeconds;

            PreviousFrameUtc = nowUtc;

            if (dt < 0)
            {
                dt = 0;
            }
            if (dt > 1)
            {
                dt = 1;
            }

            T += dt;



            if (LastCompiledScript != null)
            {
                try
                {
                    var w = pbRenderTarget.ClientSize.Width;
                    var h = pbRenderTarget.ClientSize.Height;
                    using (var bitmap = new Bitmap(w, h))
                    {
                        using (var fx = Graphics.FromImage(bitmap))
                        {
                            var       script = LastCompiledScript;
                            var       args2  = new ScriptRunArgs(fx, new Rectangle(0, 0, w, h), T, dt);
                            Exception ex     = null;
                            var       render = new Thread(() => {
                                try
                                {
                                    script.Run(args2);
                                }
                                catch (Exception tex)
                                {
                                    ex = tex;
                                }
                            });
                            render.Start();
                            if (!render.Join(200))
                            {
                                render.Interrupt();
                                render.Abort();
                                LastCompiledScript = new ErrorScript(Font, "Script timed out rendering");
                                LastCompiledScript.Run(args2);
                            }
                            else if (ex != null)
                            {
                                throw ex;
                            }
                        }
                        args.Graphics.DrawImage(bitmap, new Rectangle(0, 0, w, h));
                    }
                }
                catch (Exception e)
                {
                    if (!CodeExceptions)
                    {
                        CodeExceptions = true;
                        lvErrors.Items.Add(new ListViewItem(new[] { "Exception", "Exception running script" }));
                        lvErrors.Items.Add(new ListViewItem(new[] { "Exception Type", e.GetType().FullName }));
                        lvErrors.Items.Add(new ListViewItem(new[] { "Exception Message", e.Message }));
                    }
                }
            }
        }
Esempio n. 4
0
 public void Run( ScriptRunArgs args )
 {
     var fx = args.Graphics;
     fx.Clear( SystemColors.Control );
     fx.DrawString( Message, Font, Brushes.Black, 20, 20 );
 }