Permalink
Browse files

Setup correct class style for OpenGL

On Windows, we need to have a CS_OWNDC class style on windows with
OpenGL contexts attached. In Windows.Forms, we can set this via the
Control.CreateParams property. See
https://www.opengl.org/wiki/Creating_an_OpenGL_Context_(WGL)
  • Loading branch information...
1 parent f9deeae commit d9afed2d1069fcf0dd6ece449e8d5de194f3ce4a @thefiddler thefiddler committed Nov 16, 2013
Showing with 24 additions and 0 deletions.
  1. +24 −0 Source/GLControl/GLControl.cs
@@ -155,6 +155,30 @@ void ValidateState()
#region --- Protected Methods ---
+ /// <summary>
+ /// Gets the <c>CreateParams</c> instance for this <c>GLControl</c>
+ /// </summary>
+ protected override CreateParams CreateParams
+ {
+ get
+ {
+ const int CS_VREDRAW = 0x1;
+ const int CS_HREDRAW = 0x2;
+ const int CS_OWNDC = 0x20;
+ const int WS_CLIPCHILDREN = 0x02000000;
+ const int WS_CLIPSIBLINGS = 0x04000000;
+
+ CreateParams cp = base.CreateParams;
+ if (Configuration.RunningOnWindows)
+ {
+ // Setup necessary class style for OpenGL on windows
+ cp.ClassStyle |= CS_VREDRAW | CS_HREDRAW | CS_OWNDC;
+ cp.Style |= WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
+ }
+ return cp;
+ }
+ }
+
/// <summary>Raises the HandleCreated event.</summary>
/// <param name="e">Not used.</param>
protected override void OnHandleCreated(EventArgs e)

0 comments on commit d9afed2

Please sign in to comment.