Esempio n. 1
0
        private void InitializeComponent(VectorI2d vWindowPos, VectorI2d vWindowSize, bool bFullScreen)
        {
            this.components    = new System.ComponentModel.Container();
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize    = new System.Drawing.Size(vWindowSize.x, vWindowSize.y);
            this.StartPosition = FormStartPosition.Manual;
            this.Location      = new System.Drawing.Point(vWindowPos.x, vWindowPos.y);
            this.Text          = "Form1";

            Timer timer = new Timer(this.components);

            timer.Interval = 1000;
            timer.Tick    += TitleUpdateTimer;
            timer.Enabled  = true;

            if (bFullScreen)
            {
                this.FormBorderStyle = FormBorderStyle.None;
                this.WindowState     = FormWindowState.Maximized;
            }
            else
            {
                this.FormBorderStyle = FormBorderStyle.FixedSingle;
                this.MaximizeBox     = false;
            }
        }
        public RCode CreateGraphics(bool bFullScreen, bool bEnableVSYNC, VectorI2d vViewPos, VectorI2d vViewSize)
        {
            Dictionary <string, object> renderParams = new Dictionary <string, object>();

            renderParams["windowPtr"] = window.ThreadSafeHandle;

            if (Renderer.GetInstance().CreateDevice(renderParams, bFullScreen, bEnableVSYNC) != RCode.OK)
            {
                return(RCode.FAIL);
            }

            Renderer.GetInstance().UpdateViewport(vViewPos, vViewSize);

            return(RCode.OK);
        }
        public RCode CreateWindowPane(VectorI2d vWindowPos, VectorI2d vWindowSize, bool bFullScreen)
        {
            window = new MainWindow(vWindowPos, vWindowSize, bFullScreen);

            // Bind event handlers
            window.KeyDown    += WindowKeyDown;
            window.KeyUp      += WindowKeyUp;
            window.MouseDown  += WindowMouseDown;
            window.MouseUp    += WindowMouseUp;
            window.MouseEnter += WindowMouseEnter;
            window.MouseLeave += WindowMouseLeave;
            window.MouseMove  += WindowMouseMove;
            window.MouseWheel += WindowMouseWheel;
            window.GotFocus   += WindowGotFocus;
            window.LostFocus  += WindowLostFocus;

            return(RCode.OK);
        }
        public RCode CreateWindowPane(VectorI2d vWindowPos, VectorI2d vWindowSize, bool bFullScreen)
        {
            display    = Xlib.XOpenDisplay(null);
            screen     = Xlib.XDefaultScreen(display);
            root       = Xlib.XRootWindow(display, screen);
            mainWindow = Xlib.XCreateSimpleWindow(
                display, root,
                vWindowPos.x, vWindowPos.y,
                (uint)vWindowSize.x, (uint)vWindowSize.y, 1,
                Xlib.XBlackPixel(display, screen), Xlib.XWhitePixel(display, screen));

            EventMask eventMask =
                // Keyboard
                EventMask.KeyPressMask | EventMask.KeyReleaseMask |
                // Mouse
                EventMask.PointerMotionMask | EventMask.ButtonPressMask | EventMask.ButtonReleaseMask |
                // Window
                EventMask.FocusChangeMask | EventMask.EnterWindowMask | EventMask.LeaveWindowMask;

            Xlib.XSelectInput(display, mainWindow, eventMask);
            Xlib.XMapWindow(display, mainWindow);

            // Disable windows re-sizing
            XSizeHints sizeHints = new XSizeHints()
            {
                flags      = XSizeHintsFlags.PMaxSize | XSizeHintsFlags.PMinSize,
                min_width  = vWindowSize.x,
                max_width  = vWindowSize.x,
                min_height = vWindowSize.y,
                max_height = vWindowSize.y
            };

            XlibExt.XSetWMNormalHints(display, mainWindow, ref sizeHints);

            // Setup delete message when the user closes the window
            deleteWindowMessage = XlibExt.XInternAtom(display, "WM_DELETE_WINDOW", false);
            XlibExt.XSetWMProtocols(display, mainWindow, new Atom[] { deleteWindowMessage }, 1);

            return(RCode.OK);
        }
Esempio n. 5
0
 public MainWindow(VectorI2d vWindowPos, VectorI2d vWindowSize, bool bFullScreen)
 {
     InitializeComponent(vWindowPos, vWindowSize, bFullScreen);
     ThreadSafeHandle = this.Handle;
 }
Esempio n. 6
0
 public void UpdateViewport(VectorI2d pos, VectorI2d size)
 {
     Gl.Viewport(pos.x, pos.y, size.x, size.y);
 }