Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/41: Рейтинг темы: голосов - 41, средняя оценка - 4.95
5 / 5 / 0
Регистрация: 08.03.2010
Сообщений: 17

OpenGL, непонятная ошибка.

08.03.2010, 15:00. Показов 7715. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Учусь работать с OpenGL.
Написал программу, которая должна рисовать отрезок из одного угла сцены в другой.
Вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Tao.FreeGlut;
using Tao.OpenGl;
using Tao.Platform;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            // инициализация Glut
            Glut.glutInit();
            Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
 
            // очитка окна
            Gl.glClearColor(255, 255, 255, 1);
 
            // установка порта вывода в соотвествии с размерами элемента anT
            Gl.glViewport(0, 0, AnT.Width, AnT.Height);
 
            // настройка проекции
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            Gl.glLoadIdentity();
 
            // теперь необходимо корректно настроить 2D ортогональную проекцию
            // в зависимости от того, какая сторона больше
            // мы немного варьируем то, как будет сконфигурированный настройки проекции
            if ((float)AnT.Width <= (float)AnT.Height)
            {
 
                Glu.gluOrtho2D(0.0, 30.0 * (float)AnT.Height / (float)AnT.Width, 0.0, 30.0);
 
            }
            else
            {
 
                Glu.gluOrtho2D(0.0, 30.0 * (float)AnT.Width / (float)AnT.Height, 0.0, 30.0);
 
            }
 
 
            Gl.glMatrixMode(Gl.GL_MODELVIEW);
            Gl.glLoadIdentity();
 
            // настройка параметров OpenGL для визуализации
            Gl.glEnable(Gl.GL_DEPTH_TEST);
            Gl.glEnable(Gl.GL_COLOR_MATERIAL);
        }
        private void button1_Click(object sender, EventArgs e)
        {
 
            // очищаем буфер цвета
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
 
            // очищаем текущую матрицу
            Gl.glLoadIdentity();
            // устанавливаем текущий цвет - красный
            Gl.glColor3f(255, 0, 0);
 
 
            // активируем режим рисования линий, на основе
            // последовательного соединения всех вершин в отрезки
            Gl.glBegin(Gl.GL_LINE_STRIP);
 
            // первая вершина будет находиться в начале координат
            Gl.glVertex2d(0, 0);
 
            // теперь в зависимости от того, как была определана проекция
            if ((float)AnT.Width <= (float)AnT.Height)
            {
 
                // рисуем вторую вершину в противоположенном углу
                Gl.glVertex2d(30.0f * (float)AnT.Height / (float)AnT.Width, 30);
 
            }
            else
            {
 
                // рисуем вторую вершину в противоположенном углу
                Gl.glVertex2d(30.0f * (float)AnT.Width / (float)AnT.Height, 30);
 
            }
 
 
            // завершаем режим рисования
            Gl.glEnd();
 
 
            // дожидаемся конца визуализации кадра
            Gl.glFlush();
 
            // посылаем сигнал перерисовки элемента AnT.
            AnT.Invalidate();
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
Нормально компилируется, но после запуска начинает вылетать MessageBox с текстом "No device or rendering context available!" .
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.03.2010, 15:00
Ответы с готовыми решениями:

Непонятная ошибка
Прога по записыванию видео с вебки в .avi По нажатию на button1, она выводит список устройств в combobox1(работает) По нажатию на...

Непонятная ошибка в VS2010
Вот такая фигня появляется при попытке компиляции проекта: http://postimage.org/image/oxgh74hw/ Происходит это после того как в...

Непонятная ошибка
В общем , пытаюсь сделать авторизацию в программе,но выдаёт ошибку,гуглить пытался,похожего ничего не нашёл.Подскажите если знаете в чём...

10
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
09.03.2010, 19:38
хм... как минимум нету Ant.InitializeContexts();
напиши где-то в конструкторе Form1 (после InitializeComponent()
1
5 / 5 / 0
Регистрация: 08.03.2010
Сообщений: 17
09.03.2010, 21:58  [ТС]
Спасибо больше, теперь все супер. Но что-то я конечно... Ринулся в работу не инициализировав элемент....
1
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
09.03.2010, 23:37
Пример очень знакомый) Сам раньше начинал учить OpenGL по примерам с того сайта.
1
5 / 5 / 0
Регистрация: 08.03.2010
Сообщений: 17
10.03.2010, 10:10  [ТС]
Да, уроки неплохие... Уже пишу свою программу.
1
11 / 11 / 1
Регистрация: 05.04.2010
Сообщений: 21
05.04.2010, 23:04
Пример хороший, только столкнулся с такой проблемой : компиляция проходит нормально, но ничего не рисуется.
код тот же что и приведен выше.
Никто не знает в чем проблема ?
0
2 / 2 / 2
Регистрация: 26.07.2012
Сообщений: 57
27.03.2013, 10:28
AnT.Invalidate() ?
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
19.11.2013, 21:05
Что за AnT? Скачал последний инсталлятор TaoFramework, установил. Добавил всё как в уроке в проект, то есть 3 библиотеки. Пишу Ant.InitializeContexts(); и Ant не найден. В панель не добавляется SimpleOpenGlControl, программно на форму можно добавить, но ведь нельзя проинициализировать, что там инициализируется, AnT то не пашет

Я уже 3-ий раз за 2 года ставлю этот TaoFramework,пытаюсь что-то сделать и всегда какие-то не понятные косяки, на разбирательство с которыми у меня нет ни времени, ни терпения. Но на этот раз моё терпение пока не лопнуло, я что только не делал, даже после установки фрэймворка винду перезагрузил, а это болльная тема, столько всего нужно закрыть, а потом снова открыть. У-у-у...
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
19.11.2013, 21:51

Не по теме:

Цитата Сообщение от Casper-SC Посмотреть сообщение
Я уже 3-ий раз за 2 года ставлю этот TaoFramework,пытаюсь что-то сделать и всегда какие-то не понятные косяки, на разбирательство с которыми у меня нет ни времени, ни терпения.
от враппера ничего другого ждать не приходится :)



если хотите использовать C# лучшим выбором будет безусловно SharpDX, который хоть как-то идёт в ногу со временем (недавно обзавёлся DirectX 11.2). А по хорошему, приложения под DirectX и\или OpenGL нужно писать на C\C++.
1
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
20.11.2013, 04:28
Цитата Сообщение от _lunar_ Посмотреть сообщение
если хотите использовать C# лучшим выбором будет безусловно SharpDX
Поставил, тоже не работает. Не подскажешь в чём беда? Вот тема: Ошибка при запуске проекта SharpDX. Текст: No screen modes found
0
Заблокирован
24.11.2013, 00:03
Цитата Сообщение от nicolas2008 Посмотреть сообщение
Сам раньше начинал учить OpenGL по примерам с того сайта.
не могли бы вы сказать с какого именно сайта, буду благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2013, 00:03
Помогаю со студенческими работами здесь

ExecuteNonQuery непонятная ошибка
Непонятная ошибка : string payAmount = paymentAmount.ToString(CultureInfo.InvariantCulture.NumberFormat); ...

Непонятная ошибка при Update
доброго времени суток. Я только начал изучать C# и базы данных и столкнулся с непонятной ошибкой. Создал базу данных на Accesse все по...

Непонятная синтаксическая ошибка в запросе
Не понимаю, в чем тут ошибка синтаксиса. Потратил 2 часа, разглядывая этот код OleDbDataAdapter dbAdapter1 = new...

Непонятная ошибка
Добрый день форумчане. Пытаюсь скомпилить следующее: class MyClass { struct MyStruct { ...

Непонятная ошибка
Привет, почему то код не работает, что могло случиться? var C = new double; for (int i = 0; i &lt; tMax; i++) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru