protected override void OnLoad(EventArgs e)
        {
            Shaders.Load();
            MSAABuffer = new MsaaFbo();
            var renderer = new Gwen.Renderer.OpenTK();

            var skinpng = new Texture(renderer);

            Gwen.Renderer.OpenTK.LoadTextureInternal(
                skinpng,
                GameResources.DefaultSkin);

            var fontpng = new Texture(renderer);

            Gwen.Renderer.OpenTK.LoadTextureInternal(
                fontpng,
                GameResources.gamefont_15_png);

            var gamefont_15 = new Gwen.Renderer.BitmapFont(
                renderer,
                GameResources.gamefont_15_fnt,
                fontpng);

            var skin = new Gwen.Skin.TexturedBase(renderer,
                                                  skinpng,
                                                  GameResources.DefaultColors
                                                  )
            {
                DefaultFont = gamefont_15
            };

            Canvas = new GameCanvas(skin,
                                    this,
                                    renderer);

            _input = new Gwen.Input.OpenTK(this);
            _input.Initialize(Canvas);
            Canvas.ShouldDrawBackground = false;
            InitControls();
            Models.LoadModels();

            AddCursor("pencil", GameResources.cursor_pencil, 6, 25);
            AddCursor("line", GameResources.cursor_line, 11, 11);
            AddCursor("eraser", GameResources.cursor_eraser, 8, 8);
            AddCursor("hand", GameResources.cursor_move, 16, 16);
            AddCursor("closed_hand", GameResources.cursor_dragging, 16, 16);
            AddCursor("adjustline", GameResources.cursor_select, 4, 4);
            AddCursor("size_nesw", GameResources.cursor_size_nesw, 16, 16);
            AddCursor("size_nwse", GameResources.cursor_size_nwse, 16, 16);
            AddCursor("size_hor", GameResources.cursor_size_horz, 16, 16);
            AddCursor("size_ver", GameResources.cursor_size_vert, 16, 16);
            AddCursor("size_all", GameResources.cursor_size_all, 16, 16);
            AddCursor("default", GameResources.cursor_default, 7, 4);
            AddCursor("zoom", GameResources.cursor_zoom_in, 11, 10);
            Gwen.Platform.Neutral.CursorSetter = new UI.CursorImpl(this);
            Program.UpdateCheck();
            Track.AutoLoadPrevious();
        }
 public override void Dispose()
 {
     if (Canvas != null)
     {
         Canvas.Dispose();
         Canvas.Skin.Dispose();
         Canvas.Skin.DefaultFont.Dispose();
         Canvas.Renderer.Dispose();
         Canvas = null;
     }
     base.Dispose();
 }
示例#3
0
        protected override void OnLoad(EventArgs e)
        {
            MSAABuffer = new MsaaFbo();
            Canvas     = GameCanvas.CreateCanvas(this);
            _input     = new Gwen.Input.OpenTK(this);
            _input.Initialize(Canvas);
            Canvas.ShouldDrawBackground = false;
            InitControls();
            Models.LoadModels();

            AddCursor("pencil", GameResources.pencil_icon, 3, 28);
            AddCursor("line", GameResources.line_cursor, 5, 5);
            AddCursor("eraser", GameResources.eraser_cursor, 5, 5);
            AddCursor("hand", GameResources.move_icon, 16, 16);
            AddCursor("closed_hand", GameResources.closed_move_icon, 16, 16);
            AddCursor("adjustline", GameResources.cursor_adjustline, 0, 0);
            Canvas.UpdateSaveNodes();
        }
示例#4
0
 private void AutoLoad()
 {
     try
     {
         game.Canvas.Loading = true;
         string lasttrack;
         if (Program.args.Length > 0)
         {
             Settings.LastSelectedTrack = Program.args[0];
             lasttrack = Settings.LastSelectedTrack;
         }
         else
         {
             lasttrack = Settings.LastSelectedTrack;
             var trdr = Constants.TracksDirectory;
             if (!lasttrack.StartsWith(trdr))
             {
                 return;
             }
         }
         if (lasttrack.Contains("Crash Backup"))
         {
             if (!GameCanvas.ShowLoadCrashBackup(game.Canvas, lasttrack))
             {
                 game.Canvas.Loading = false; return;
             }
         }
         if (string.Equals(
                 Path.GetExtension(lasttrack),
                 ".trk",
                 StringComparison.InvariantCultureIgnoreCase))
         {
             var trackname = TrackIO.GetTrackName(lasttrack);
             lock (LoadSync)
             {
                 var track = TRKLoader.LoadTrack(lasttrack, trackname);
                 ChangeTrack(track);
             }
         }
         else if (string.Equals(
                      Path.GetExtension(lasttrack),
                      ".json",
                      StringComparison.InvariantCultureIgnoreCase))
         {
             var trackname = TrackIO.GetTrackName(lasttrack);
             lock (LoadSync)
             {
                 var track = JSONLoader.LoadTrack(lasttrack);
                 if (track.Name == Constants.DefaultTrackName ||
                     string.IsNullOrEmpty(track.Name))
                 {
                     track.Name = trackname;
                 }
                 ChangeTrack(track);
             }
         }
         else if (string.Equals(
                      Path.GetExtension(lasttrack),
                      ".sol",
                      StringComparison.InvariantCultureIgnoreCase))
         {
             var trackname = TrackIO.GetTrackName(lasttrack);
             var sol       = SOLLoader.LoadSol(lasttrack);
             if (sol.Count == 0)
             {
                 return;
             }
             lock (LoadSync)
             {
                 var track = SOLLoader.LoadTrack(sol[0]);
                 ChangeTrack(track);
             }
         }
     }
     catch (Exception e)
     {
         Debug.WriteLine("Autoload failure: " + e.ToString());
     }
     finally
     {
         game.Canvas.Loading = false;
     }
 }
示例#5
0
        protected override void OnLoad(EventArgs e)
        {
            Shaders.Load();
            MSAABuffer = new MsaaFbo();
            var renderer = new Gwen.Renderer.OpenTK();

            var skinpng = renderer.CreateTexture(GameResources.DefaultSkin);

            var fontpng     = renderer.CreateTexture(GameResources.liberation_sans_15_png);
            var fontpngbold = renderer.CreateTexture(GameResources.liberation_sans_15_bold_png);

            var gamefont_15 = new Gwen.Renderer.BitmapFont(
                renderer,
                GameResources.liberation_sans_15_fnt,
                fontpng);


            var gamefont_15_bold = new Gwen.Renderer.BitmapFont(
                renderer,
                GameResources.liberation_sans_15_bold_fnt,
                fontpngbold);

            var skin = new Gwen.Skin.TexturedBase(renderer,
                                                  skinpng,
                                                  GameResources.DefaultColors
                                                  )
            {
                DefaultFont = gamefont_15
            };

            Fonts f = new Fonts(gamefont_15, gamefont_15_bold);

            Canvas = new GameCanvas(skin,
                                    this,
                                    renderer,
                                    f);

            _input = new Gwen.Input.OpenTK(this);
            _input.Initialize(Canvas);
            Canvas.ShouldDrawBackground = false;
            Models.LoadModels();

            AddCursor("pencil", GameResources.cursor_pencil, 6, 25);
            AddCursor("line", GameResources.cursor_line, 11, 11);
            AddCursor("eraser", GameResources.cursor_eraser, 8, 8);
            AddCursor("hand", GameResources.cursor_move, 16, 16);
            AddCursor("hand_point", GameResources.cursor_hand, 14, 8);
            AddCursor("closed_hand", GameResources.cursor_dragging, 16, 16);
            AddCursor("adjustline", GameResources.cursor_select, 4, 4);
            AddCursor("size_nesw", GameResources.cursor_size_nesw, 16, 16);
            AddCursor("size_nwse", GameResources.cursor_size_nwse, 16, 16);
            AddCursor("size_hor", GameResources.cursor_size_horz, 16, 16);
            AddCursor("size_ver", GameResources.cursor_size_vert, 16, 16);
            AddCursor("size_all", GameResources.cursor_size_all, 16, 16);
            AddCursor("default", GameResources.cursor_default, 7, 4);
            AddCursor("zoom", GameResources.cursor_zoom_in, 11, 10);
            AddCursor("ibeam", GameResources.cursor_ibeam, 11, 11);
            Program.UpdateCheck();
            Track.AutoLoadPrevious();
            linerider.Tools.CurrentTools.Init();
        }
示例#6
0
        public static GameCanvas CreateCanvas(GLWindow game)
        {
            var renderer = new Gwen.Renderer.OpenTK();

            var tx = new Texture(renderer);

            Gwen.Renderer.OpenTK.LoadTextureInternal(tx, GameResources.DefaultSkin);
            var skin    = new TexturedBase(renderer, tx, GameResources.DefaultColors);
            var bmpfont = new Gwen.Renderer.OpenTK.BitmapFont(renderer, "SourceSansPro", 10, 10, GameResources.SourceSansProq,
                                                              new List <System.Drawing.Bitmap> {
                GameResources.SourceSansPro_img
            });

            skin.DefaultFont = bmpfont;
            var canvas = new GameCanvas(skin, game)
            {
                Renderer = renderer
            };

            canvas.SpriteLoading = new Sprite(canvas);
            canvas.SpriteLoading.SetImage(GameResources.loading);
            canvas.SpriteLoading.IsHidden             = true;
            canvas.SpriteLoading.IsTabable            = false;
            canvas.SpriteLoading.KeyboardInputEnabled = false;
            canvas.SpriteLoading.MouseInputEnabled    = false;
            canvas.SpriteLoading.SetSize(32, 32);
            canvas.SpriteLoading.RotationPoint.X = 16;
            canvas.SpriteLoading.RotationPoint.Y = 16;
            canvas.SpriteLoading.SetPosition(canvas.Width - 32, 0);

            var timeslider = new HorizontalIntSlider(canvas)
            {
                X                    = 120,
                Y                    = canvas.Height - 25,
                Width                = canvas.Width - 120 * 2,
                Height               = 25,
                IsTabable            = false,
                IsHidden             = true,
                KeyboardInputEnabled = false,
                Name                 = "timeslider",
            };
            var btnfastfoward = new ImageButton(canvas)
            {
                X                    = timeslider.Right,
                Y                    = canvas.Height - 25,
                Width                = 24,
                Height               = 24,
                IsTabable            = false,
                IsHidden             = true,
                KeyboardInputEnabled = false,
                Name                 = "btnfastforward"
            };

            btnfastfoward.SetImage(GameResources.fast_forward, GameResources.fast_forward_white);
            var btnslowmo = new ImageButton(canvas)
            {
                X                    = timeslider.X - 24,
                Y                    = canvas.Height - 25,
                Width                = 24,
                Height               = 24,
                IsTabable            = false,
                IsHidden             = true,
                KeyboardInputEnabled = false,
                Name                 = "btnslowmo"
            };

            btnslowmo.SetImage(GameResources.rewind, GameResources.rewind_white);
            btnslowmo.Clicked     += (o, e) => { game.PlaybackDown(); };
            btnfastfoward.Clicked += (o, e) => { game.PlaybackUp(); };

            timeslider.ValueChanged += canvas.timeslider_ValueChanged;
            var labelTrackName = new Label(canvas)
            {
                TextColor = System.Drawing.Color.Black,
                Dock      = Pos.Left,
                Margin    = new Margin(5, 0, 0, 0),
                Name      = "trackname"
            };
            Label labeliteration = new Label(canvas);

            labeliteration.Name = "labeliterations";
            labeliteration.Font = new Font(renderer, "Arial", 18);
            labeliteration.SetText("");
            labeliteration.TextColor = Color.Black;
            Align.PlaceDownLeft(labeliteration, labelTrackName);

            var toprightcontainer = new ControlBase(canvas)
            {
                Dock              = Pos.Right,
                Width             = 150,
                Height            = 300,
                MouseInputEnabled = false
            };
            var fps = new Label(toprightcontainer)
            {
                TextColor = Color.Black, Name = "fps"
            };
            var labelppf = new Label(toprightcontainer)
            {
                TextColor = Color.Black, Name = "ppf"
            };
            var labelPlayback = new Label(toprightcontainer)
            {
                TextColor = Color.Black, Name = "labelplayback"
            };
            var flagtime = new Label(canvas)
            {
                TextColor = Color.Black, Name = "flagtime"
            };
            var textheight = renderer.MeasureText(skin.DefaultFont, "@").Y + 3;

            labelppf.SetPosition(0, textheight);
            labelPlayback.SetPosition(0, textheight * 2);

            var vslider = new VerticalSlider(canvas)
            {
                Min = 0.1f, Max = 24f, Value = game.Track.Zoom, IsTabable = false
            };

            vslider.ValueChanged += (o, e) =>
            {
                var slider = (VerticalSlider)o;
                var diff   = slider.Value - game.Track.Zoom;
                game.Zoom(diff, false);
            };
            vslider.SetPosition(0, (int)canvas.Height - 150);
            vslider.Name = "vslider";
            Align.AlignRight(vslider);
            vslider.Height = 125;
            return(canvas);
        }