コード例 #1
0
        private static void Create()
        {
            OnGuiContextCreating(EventArgs.Empty);
            //Create the global GwenRenderer and Canvas
            _renderer = new Gwen.Renderer.SFML(WindowContext.Window);
            WindowContext.Window.KeyPressed          += KeyPressed;
            WindowContext.Window.KeyReleased         += KeyReleased;
            WindowContext.Window.MouseButtonPressed  += MouseButtonPressed;
            WindowContext.Window.MouseButtonReleased += MouseButtonReleased;
            WindowContext.Window.MouseWheelMoved     += MouseWheelMoved;
            WindowContext.Window.MouseMoved          += MouseMoved;
            WindowContext.Window.TextEntered         += TextEntered;

            Gwen.Font font = new Gwen.Font(_renderer, _gameConfiguration.SkinFont, 12);
            _renderer.LoadFont(font);

            _skin = new Gwen.Skin.TexturedBase(_renderer, _gameConfiguration.Skin);
            _skin.SetDefaultFont(font.FaceName);
            font.Dispose();

            Canvas canvas = new Canvas(_skin);

            canvas.SetBounds(0, 0, _virtualResolution.Width, _virtualResolution.Height);
            canvas.ShouldDrawBackground = false;
            canvas.KeyboardInputEnabled = true;
            Canvas = canvas;

            _input = new Gwen.Input.SFML();
            _input.Initialize(canvas, WindowContext.Window);

            OnGuiContextCreated(EventArgs.Empty);
        }
コード例 #2
0
        static MainCanvas()
        {
            GraphicsManager.keyboard.KeyDown += Keyboard_KeyDown;
            GraphicsManager.keyboard.KeyUp += Keyboard_KeyUp;

            GraphicsManager.mouse.ButtonDown += Mouse_ButtonDown;
            GraphicsManager.mouse.ButtonUp += Mouse_ButtonUp;
            GraphicsManager.mouse.Move += Mouse_Move;
            GraphicsManager.mouse.WheelChanged += Mouse_Wheel;

            Camera.OnRender += new GraphicsManager.Renderer(OnRenderFrame);
            Camera.Layer = 10;
            GraphicsManager.Update += new GraphicsManager.Updater(OnUpdateFrame);
            GraphicsManager.OnWindowResize += new GraphicsManager.Resizer(OnWindowResize);

            GraphicsManager.OnDispose += new GraphicsManager.Disposer(Dispose);

            Renderer = new Gwen.Renderer.OpenTK();
            Skin = new Gwen.Skin.TexturedBase(Renderer, @"Data\DefaultSkin.png");
            //skin = new Gwen.Skin.Simple(renderer);
            //skin.DefaultFont = new Gwen.Font(renderer, "Courier", 10);
            canvas = new Canvas(Skin);

            input = new Gwen.Input.OpenTK(GraphicsManager.Instance);
            input.Initialize(canvas);

            canvas.SetSize(GraphicsManager.WindowWidth, GraphicsManager.WindowHeight);
            canvas.ShouldDrawBackground = false;
            canvas.BackgroundColor = System.Drawing.Color.FromArgb(255, 150, 170, 170);
            //canvas.KeyboardInputEnabled = true;
        }
コード例 #3
0
ファイル: MainCanvas.cs プロジェクト: CloneDeath/Xanatos
        static MainCanvas()
        {
            Camera = new Camera2D();
            GraphicsManager.keyboard.KeyDown += Keyboard_KeyDown;
            GraphicsManager.keyboard.KeyUp   += Keyboard_KeyUp;

            GraphicsManager.mouse.ButtonDown   += Mouse_ButtonDown;
            GraphicsManager.mouse.ButtonUp     += Mouse_ButtonUp;
            GraphicsManager.mouse.Move         += Mouse_Move;
            GraphicsManager.mouse.WheelChanged += Mouse_Wheel;

            Camera.OnRender                += OnRenderFrame;
            Camera.Layer                    = 10;
            GraphicsManager.Update         += OnUpdateFrame;
            GraphicsManager.OnWindowResize += new GraphicsManager.Resizer(OnWindowResize);

            GraphicsManager.OnDispose += new GraphicsManager.Disposer(Dispose);

            Renderer = new Gwen.Renderer.OpenTK();
            Skin     = new Gwen.Skin.TexturedBase(Renderer, @"Data\DefaultSkin.png");
            canvas   = new Canvas(Skin);

            input = new Gwen.Input.OpenTK(GraphicsManager.Instance);
            input.Initialize(canvas);

            canvas.SetSize(GraphicsManager.WindowWidth, GraphicsManager.WindowHeight);
            canvas.ShouldDrawBackground = false;
            canvas.BackgroundColor      = System.Drawing.Color.FromArgb(255, 150, 170, 170);
        }
コード例 #4
0
        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();
        }
コード例 #5
0
ファイル: HUD.cs プロジェクト: riordanp/panjin
        public HUD(RenderWindow window, bool developerConsole)
        {
            window.KeyReleased += window_KeyReleased;
            window.MouseButtonPressed += window_MouseButtonPressed;
            window.MouseButtonReleased += window_MouseButtonReleased;
            window.MouseWheelMoved += window_MouseWheelMoved;
            window.MouseMoved += window_MouseMoved;
            window.TextEntered += window_TextEntered;            

            gwenRenderer = new Gwen.Renderer.SFML(window);
            Gwen.Skin.TexturedBase skin = new Gwen.Skin.TexturedBase(gwenRenderer, "./assets/DefaultSkin.png");
            defaultFont = new Gwen.Font(gwenRenderer) { Size = 10, FaceName = "./assets/OpenSanss.ttf" };

            if (gwenRenderer.LoadFont(defaultFont))
            {
                gwenRenderer.FreeFont(defaultFont);
            }
            else // try another
            {
                defaultFont.FaceName = "Arial";
                if (gwenRenderer.LoadFont(defaultFont))
                {
                    gwenRenderer.FreeFont(defaultFont);
                }
                else // try default
                {
                    defaultFont.FaceName = "./assets/OpenSans.ttf";
                }
            }

            skin.SetDefaultFont(defaultFont.FaceName);
            defaultFont.Dispose(); // skin has its own

            _canvas = new Gwen.Control.Canvas(skin);
            _canvas.SetSize((int)window.Size.X, (int)window.Size.Y);
            _canvas.ShouldDrawBackground = false;
            _canvas.KeyboardInputEnabled = true; 

            _input = new Gwen.Input.SFML();
            _input.Initialize(_canvas, window);

            tabControl = new Gwen.Control.TabControl(_canvas);
            int tabcontrolheight = 150;
            tabControl.SetBounds(0, window.Size.Y - tabcontrolheight, window.Size.X, tabcontrolheight);
            //Fixes the cursor flickering
            //TODO: Is this cross platform?
            System.Windows.Forms.Cursor.Hide();
            Inventory.Init();
            if (developerConsole)
            {
                HUD.Console.Init();
            }
        }
コード例 #6
0
ファイル: UISceneObject.cs プロジェクト: AreonDev/NoWayOut
        public override bool Init(RendererContext rc)
        {
            if (!IsInitialized)
            {
                Renderer = new Gwen.Renderer.FreezingArcherGwenRenderer(rc);
                Skin = new Gwen.Skin.TexturedBase(Renderer, "lib/UI/Skins/NoWayOutSkin.png");
                Canvas = new Gwen.Control.Canvas(Skin);

                PrivateRendererContext = rc;

                IsInitialized = true;
            }

            return true;
        }
コード例 #7
0
 protected override void OnKeyDown(OpenTK.Input.KeyboardKeyEventArgs e)
 {
     base.OnKeyDown(e);
     try
     {
         input.ProcessKeyDown(e);
     }
     catch (Exception ex)
     {
         //sdl eats exceptions
         Console.WriteLine(ex.ToString());
         throw ex;
     }
     if (e.Key == OpenTK.Input.Key.F5)
     {
         skinpng.Dispose();
         skinpng = new Texture(Canvas.Skin.Renderer);
         var skinimg  = new Bitmap(Image.FromFile("DefaultSkin.png"));
         var colorxml = System.IO.File.ReadAllText("DefaultColors.xml");
         Gwen.Renderer.OpenTK.LoadTextureInternal(
             skinpng,
             skinimg);
         var skin = new Gwen.Skin.TexturedBase(Canvas.Skin.Renderer, skinpng, colorxml)
         {
             DefaultFont = Canvas.Skin.DefaultFont
         };
         // Canvas.Skin = skin;
         Canvas.SetSkin(skin, true);
         skinimg.Dispose();
     }
     if (e.Key == OpenTK.Input.Key.F12)
     {
         _slow = !_slow;
     }
     if (e.Key == OpenTK.Input.Key.F11)
     {
         _steps = true;
     }
 }
コード例 #8
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            input = new Gwen.Input.OpenTK(this);
            var renderer = new Gwen.Renderer.OpenTK();
            var skinimg  = new Bitmap(Image.FromFile("DefaultSkin.png"));
            // var font = new Bitmap(Image.FromFile("liberation_20_0.png"));
            // var fontdata = System.IO.File.ReadAllText("liberation_20.fnt");
            var font     = new Bitmap(Image.FromFile("gamefont_15_0.png"));
            var fontdata = System.IO.File.ReadAllText("gamefont_15.fnt");
            var colorxml = System.IO.File.ReadAllText("DefaultColors.xml");

            skinpng = renderer.CreateTexture(skinimg);

            var fontpng = renderer.CreateTexture(font);

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

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

            // var skin = new Gwen.Skin.Simple(renderer) { DefaultFont = gamefont_15 };
            Canvas = new Canvas(skin);
            // Canvas.Scale = 2;
            Canvas.SetCanvasSize(ClientSize.Width, ClientSize.Height);
            input.Initialize(Canvas);
            TestContainer container = new TestContainer(Canvas);

            font.Dispose();
            skinimg.Dispose();
            ControlBase.LogLayout = true;
        }
コード例 #9
0
ファイル: RendererContext.cs プロジェクト: AreonDev/NoWayOut
        public override bool Init(FreezingArcher.Core.Application app)
        {
            base.Init(app);

            SimpleMaterial = new SimpleMaterial();
            SimpleMaterial.Init(this);

            GwenRenderer = new Gwen.Renderer.FreezingArcherGwenRenderer(this);
            Skin = new Gwen.Skin.TexturedBase(GwenRenderer, "lib/UI/Skins/NoWayOutSkin.png");
            Canvas = new Gwen.Control.Canvas(Skin);
            _PrivateCanvas = Canvas;

            return true;
        }
コード例 #10
0
        private void setupUi()
        {
            renderer = new Gwen.Renderer.OpenTK();
            Gwen.Skin.Base skin = new Gwen.Skin.TexturedBase(renderer, "DefaultSkin.png");
            canvas = new Canvas(skin);
            canvas.SetSize(Width, Height);

            gwenInput = new Gwen.Input.OpenTK(this);
            gwenInput.Initialize(canvas);

            Mouse.ButtonDown += Mouse_ButtonDown;
            Mouse.ButtonUp += Mouse_ButtonUp;
            Mouse.Move += Mouse_Move;
            Mouse.WheelChanged += Mouse_Wheel;

            canvas.ShouldDrawBackground = true;
            canvas.BackgroundColor = System.Drawing.Color.FromArgb(122, 150, 170, 170);

            // controls
            radioCamera = new RadioButtonGroup(canvas);
            radioCamera.AutoSizeToContents = true;
            radioCamera.SetText("Тип камеры");
            radioCamera.AddOption("Свободная", "free");
            radioCamera.AddOption("Привязанная", "bound");
            radioCamera.SetSelection(0);
            radioCamera.SelectionChanged += radioCamera_SelectionChanged;

            // coord
            GroupBox posGroup = new GroupBox(canvas);
            posGroup.SetText("Позиция камеры");
            posGroup.SizeToChildren();
            posGroup.SetSize(150, 120);
            Gwen.Align.PlaceDownLeft(posGroup, radioCamera, 45);

            labelPosX = new Label(posGroup);
            labelPosY = new Label(posGroup);
            labelPosZ = new Label(posGroup);
            labelPosX.SetText("X: 0.0");
            labelPosY.SetText("Y: 1.0");
            labelPosZ.SetText("Z: 2.0");
            Gwen.Align.PlaceDownLeft(labelPosY, labelPosX, 5);
            Gwen.Align.PlaceDownLeft(labelPosZ, labelPosY, 5);

            // reset button
            Button resetCameraButton = new Gwen.Control.Button(posGroup);
            resetCameraButton.SetText("Сбросить позицию\nкамеры");
            resetCameraButton.Clicked += cameraReset_Clicked;
            resetCameraButton.SizeToContents();
            Gwen.Align.PlaceDownLeft(resetCameraButton, labelPosZ, 5);

            labelSpeed = new Label(canvas);
            Gwen.Align.PlaceDownLeft(labelSpeed, posGroup, 5);

            labelTips = new Label(canvas);
            labelTips.SetText(freeCameraTip + "\n\n" + nodeTransformTip);
            labelTips.SizeToContents();
            Gwen.Align.PlaceDownLeft(labelTips, labelSpeed, 15);

            statusBar = new Gwen.Control.StatusBar(canvas);
            statusBar.Dock = Gwen.Pos.Bottom;
        }
コード例 #11
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();
        }
コード例 #12
0
        static void Main()
        {
            //try
            {
                // Create main window
                m_Window = new RenderWindow(new VideoMode((uint)width, (uint)height), "GalaxyConquest", Screen_Settings.fullScreen ? Styles.Fullscreen : (Styles.Close | Styles.Resize) | Styles.Titlebar, new ContextSettings(32, 0));

                // Setup event handlers
                m_Window.Closed              += OnClosed;
                m_Window.KeyPressed          += OnKeyPressed;
                m_Window.Resized             += OnResized;
                m_Window.KeyReleased         += window_KeyReleased;
                m_Window.MouseButtonPressed  += window_MouseButtonPressed;
                m_Window.MouseButtonReleased += window_MouseButtonReleased;
                m_Window.MouseWheelMoved     += window_MouseWheelMoved;
                m_Window.MouseMoved          += window_MouseMoved;
                m_Window.TextEntered         += window_TextEntered;

                m_Window.SetFramerateLimit(60);


                // Create a sprite for the background
                Sprite background = new Sprite(new global::SFML.Graphics.Texture("background.jpg"));
                background.Texture.Repeated = true;


                // Disable lighting
                Gl.glDisable(Gl.GL_LIGHTING);
                // Configure the viewport (the same size as the window)
                Gl.glViewport(0, 0, (int)m_Window.Size.X, (int)m_Window.Size.Y);


                const int   fps_frames = 50;
                List <long> ftime      = new List <long>(fps_frames);
                long        lastTime   = 0;

                // create GWEN renderer
                Gwen.Renderer.SFML.GwenRenderer gwenRenderer = new Gwen.Renderer.SFML.GwenRenderer(m_Window);

                // Create GWEN skin
                //Skin.Simple skin = new Skin.Simple(GwenRenderer);
                Gwen.Skin.TexturedBase skin = new Gwen.Skin.TexturedBase(gwenRenderer, "DefaultSkin.png");

                // set default font
                Gwen.Font defaultFont = new Gwen.Font(gwenRenderer)
                {
                    Size = 10, FaceName = "OpenSans.ttf"
                };

                // try to load, fallback if failed
                if (gwenRenderer.LoadFont(defaultFont))
                {
                    gwenRenderer.FreeFont(defaultFont);
                }

                skin.SetDefaultFont(defaultFont.FaceName);
                defaultFont.Dispose(); // skin has its own

                // Create a Canvas (it's root, on which all other GWEN controls are created)
                m_Canvas = new Canvas(skin);
                m_Canvas.SetSize(width, height);
                //                m_Canvas.ShouldDrawBackground = true;
                //                m_Canvas.BackgroundColor = System.Drawing.Color.FromArgb(255, 150, 170, 170);
                m_Canvas.KeyboardInputEnabled = true;
                m_Canvas.ShouldDrawBackground = false;
                m_Canvas.DrawDebugOutlines    = false;

                // Create GWEN input processor
                m_Input = new Gwen.Input.SFML.GwenInput(m_Window, m_Canvas);



                fontLogo          = new Gwen.Font(gwenRenderer);
                fontLogo.FaceName = "OpenSans.ttf";
                fontLogo.Size     = 35;

                fontText          = new Gwen.Font(gwenRenderer);
                fontText.FaceName = "OpenSans.ttf";
                fontText.Size     = 15;

                fontButtonLabels          = new Gwen.Font(gwenRenderer);
                fontButtonLabels.FaceName = "OpenSans.ttf";
                fontButtonLabels.Size     = 25;



                /*Gwen.Control.StatusBar m_StatusBar;
                 * m_StatusBar = new Gwen.Control.StatusBar(m_Canvas);
                 * m_StatusBar.Dock = Gwen.Pos.Bottom;
                 */
                double Fps = 0.0; // fps to display

                screenManager = new ScreenManager(m_Canvas);
                screenManager.LoadScreen("mainmenu");


                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                while (m_Window.IsOpen() && !quitFlag)
                {
                    m_Window.SetActive();
                    m_Window.DispatchEvents();
                    m_Window.Clear();

                    m_Window.Draw(background);



                    /////////////////////////

                    Gl.glClearColor(0f, 0f, 0f, 0f);

                    Gl.glBegin(Gl.GL_QUADS);

                    float x = 100.0f;
                    float y = 100.0f;

                    Gl.glVertex2f(x + 0f, y + 0f);
                    Gl.glVertex2f(x + 0f, y + 1f);
                    Gl.glVertex2f(x + 1f, y + 1f);
                    Gl.glVertex2f(x + 1f, y + 0f);

                    Gl.glEnd();

                    //m_Window.SwapBuffers();



                    if (ftime.Count == fps_frames)
                    {
                        ftime.RemoveAt(0);
                    }

                    ftime.Add(stopwatch.ElapsedMilliseconds - lastTime);
                    lastTime = stopwatch.ElapsedMilliseconds;

                    if (stopwatch.ElapsedMilliseconds > 1000)
                    {
                        Fps = 1000f * ftime.Count / ftime.Sum();
                        stopwatch.Restart();
                    }
                    //m_StatusBar.Text = "GalaxyConquest v.0.1 - " + Math.Round(Fps, 2).ToString() + " fps";

                    // render GWEN canvas
                    m_Canvas.RenderCanvas();

                    m_Window.Display();
                }

                fontLogo.Dispose();
                fontText.Dispose();
                fontButtonLabels.Dispose();

                // we only need to dispose the canvas, it will take care of disposing all its children
                // and current game screen
                m_Canvas.Dispose();

                // also dispose of these
                skin.Dispose();
                gwenRenderer.Dispose();
            }

            /*catch (Exception e)
             * {
             *  String msg = String.Format("Exception: {0}\n{1}", e.Message, e.StackTrace);
             *  MessageBox.Show(msg);
             * }*/

            m_Window.Dispose();
        }