public GLForm(OpenTKGraphics graphics) { this.graphics = graphics; InitializeComponent(); glControl = new GLControl(); glControl.BackColor = System.Drawing.Color.Black; glControl.Dock = DockStyle.Fill; glControl.TabIndex = 0; glControl.VSync = false; Controls.Add(glControl); glControl.Paint += new PaintEventHandler(glControl_Paint); glControl.Disposed += new EventHandler(glControl_Disposed); glControl.KeyDown += new KeyEventHandler(glControl_KeyDown); glControl.KeyUp += new KeyEventHandler(glControl_KeyUp); glControl.MouseDown += new MouseEventHandler(glControl_MouseDown); glControl.MouseUp += new MouseEventHandler(glControl_MouseUp); glControl.MouseMove += new MouseEventHandler(glControl_MouseMove); glControl.MouseWheel += new MouseEventHandler(glControl_MouseWheel); glControl.PreviewKeyDown += new PreviewKeyDownEventHandler(glControl_PreviewKeyDown); Resize += new EventHandler(GLForm_Resize); }
public GLForm(OpenTKGraphics graphics) { _graphics = graphics; InitializeComponent(); //GLControl = new GLControl(new GraphicsMode(new ColorFormat(24), 24, 0, 4)); GLControl = new GLControl { BackColor = System.Drawing.Color.Black, Dock = DockStyle.Fill, TabIndex = 0, VSync = true }; Controls.Add(GLControl); GLControl.Paint += new PaintEventHandler(glControl_Paint); GLControl.Disposed += new EventHandler(glControl_Disposed); GLControl.KeyDown += new KeyEventHandler(glControl_KeyDown); GLControl.KeyUp += new KeyEventHandler(glControl_KeyUp); GLControl.MouseDown += new MouseEventHandler(glControl_MouseDown); GLControl.MouseUp += new MouseEventHandler(glControl_MouseUp); GLControl.MouseMove += new MouseEventHandler(glControl_MouseMove); GLControl.MouseWheel += new MouseEventHandler(glControl_MouseWheel); GLControl.PreviewKeyDown += new PreviewKeyDownEventHandler(glControl_PreviewKeyDown); Resize += new EventHandler(GLForm_Resize); }
static void SetBuffer <T>(T[] vertices, out int bufferId, BufferUsageHint usage = BufferUsageHint.StaticDraw) where T : struct { int bufferSize; // Generate Array Buffer Id GL.GenBuffers(1, out bufferId); OpenTKGraphics.CheckGLError("GenBuffers"); // Bind current context to Array Buffer ID GL.BindBuffer(BufferTarget.ArrayBuffer, bufferId); OpenTKGraphics.CheckGLError("BindBuffer"); // Send data to buffer GL.BufferData(BufferTarget.ArrayBuffer, (IntPtr)(vertices.Length * Vector3.SizeInBytes), vertices, usage); OpenTKGraphics.CheckGLError("BufferData"); // Validate that the buffer is the correct size GL.GetBufferParameter(BufferTarget.ArrayBuffer, BufferParameterName.BufferSize, out bufferSize); OpenTKGraphics.CheckGLError("GetBufferParameter"); if (vertices.Length * Vector3.SizeInBytes != bufferSize) { throw new ApplicationException("Buffer data not uploaded correctly"); } // Clear the buffer Binding GL.BindBuffer(BufferTarget.ArrayBuffer, 0); OpenTKGraphics.CheckGLError("BindBuffer"); }