#region --- License --- /* Licensed under the MIT/X11 license. * Copyright (c) 2006-2008 the OpenTK Team. * This notice may not be removed from any source distribution. * See license.txt for licensing detailed licensing details. */ #endregion using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using OpenTK.Graphics; namespace OpenTK.Platform.Windows { class WinGLControl : IGLControl { MSG msg = new MSG(); GraphicsMode mode; Control control; internal WinGLControl(GraphicsMode mode, Control control) { this.mode = mode; this.control = control; } #region --- IGLControl Members --- public GraphicsContext CreateContext() { WinWindowInfo window = new WinWindowInfo(control.Handle, null); return new GraphicsContext(mode, window); } public bool IsIdle { get { return !OpenTK.Platform.Windows.Functions.PeekMessage(ref msg, IntPtr.Zero, 0, 0, 0); } } public IWindowInfo WindowInfo { get { // This method forces the creation of the control. Beware of this side-effect! return new WinWindowInfo(control.Handle, null); } } #endregion } }