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); }
public MainWindow(VectorI2d vWindowPos, VectorI2d vWindowSize, bool bFullScreen) { InitializeComponent(vWindowPos, vWindowSize, bFullScreen); ThreadSafeHandle = this.Handle; }
public void UpdateViewport(VectorI2d pos, VectorI2d size) { Gl.Viewport(pos.x, pos.y, size.x, size.y); }