A native control for WPF in OpenTK.
(Probably) faster than GLControl, and solves the airspace problem.
-
In your window, include GLWpfControl.
<Window ... xmlns:glWpfControl="clr-namespace:OpenTK.Wpf;assembly=GLWpfControl" ... >
-
Add the control into a container (Grid, StackPanel, etc.) and add a handler dethod to the render event.
<Grid> ... <glWpfControl:GLWpfControl x:Name="OpenTkControl" Render="OpenTkControl_OnRender"/> ... </Grid>
-
In the code behind add to the constructor, after the InitializeComponents call, a call to the start method of the GLWpfControl.
public MainWindow() { InitializeComponent(); // [...] var settings = new GLWpfControlSettings { MajorVersion = 3, MinorVersion = 6 }; OpenTkControl.Start(settings); }
-
You can now render in the OnRender handler.
private void OpenTkControl_OnRender(TimeSpan delta) { GL.ClearColor(Color4.Blue); GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); }
For additional examples, see MainWindow.xaml and MainWindow.xaml.cs in the example project.
- Clone repository
or for SSH
$ git clone https://github.com/varon/GLWpfControl.git $ cd GLWpfControl
$ git clone [email protected]:varon/GLWpfControl.git $ cd GLWpfControl
- Run
build.cmd
orbuild.sh
. - Develop as normal in whatever IDE you like.
Hardware rendering using NV_DX_interop:
Currently a work in progress. Contributions welcome!