Форум программистов, компьютерный форум, киберфорум
Наши страницы
8Observer8
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 1.

Инструкция. Добавляем OpenGL графику на WPF форму с помощью OpenTK.GLControl

Запись от 8Observer8 размещена 30.09.2019 в 14:34
Обновил(-а) 8Observer8 30.09.2019 в 14:37

- Откройте NuGet и установите OpenTK и OpenTK.GLControl
- Добавьте в References:
Цитата:
System.Drawing
System.Windows.Forms
WindowsFormsIntegration
- Добавьте NameSpace в XAML:
XML
1
xmlns:opentk="clr-namespace:OpenTK;assembly=OpenTK.GLControl"
- Добавьте контрол на форму, задайте обработчик Initialized, задайте имя контрола и обработчики событий Load, Paint и т.д.:
XML
1
2
3
4
5
    <Grid>
            <WindowsFormsHost Initialized="WindowsFormsHost_Initialized">
                <opentk:GLControl x:Name="glControl" Load="glControl_Load" Paint="glControl_Paint" />
            </WindowsFormsHost>
    <Grid>
Пример использования. Данная программа очищает экран выбранным цветом:

MainWindow.xaml.cs

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
        private void WindowsFormsHost_Initialized(object sender, EventArgs e)
        {
            glControl.MakeCurrent();
        }
 
        private void glControl_Load(object sender, EventArgs e)
        {
            GL.ClearColor(new Color4(0.631f, 0.6f, 0.227f, 1f));
        }
 
        private void glControl_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
        {
            GL.Viewport(0, 0, glControl.Width, glControl.Height);
 
            GL.Clear(ClearBufferMask.ColorBufferBit);
 
            // Draw objects here
 
            glControl.SwapBuffers();
        }
Пример рисования треугольника и вывода кнопок: EditedTriangle_WPFOpenGL31CSharp.zip

Туториал по OpenGL на OpenTK: https://opentk.net/learn/index.html
Размещено в Без категории
Просмотров 106 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.