Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
356 / 124 / 3
Регистрация: 25.01.2012
Сообщений: 5,467
Записей в блоге: 119
1

Выдает ошибку в работе с OpenGL

31.10.2017, 19:04. Показов 957. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пакет установил. При компиляции кода - ошибок не было.
Код
Кликните здесь для просмотра всего текста
Pascal
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
unit Unit1; 
 
{$mode objfpc}{$H+}
 
interface
 
// Подключение библиотек. Для работы C OpenGL необходимы OpenGLContext, GL, GLU
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls, OpenGLContext, GL, GLU;
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    Panel1: TPanel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
    OpenGLControl1: TOpenGLControl; // Контекст воспроизведения OpenGL
  end; 
 
var
  Form1: TForm1; 
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
 
procedure TForm1.FormCreate(Sender: TObject);
 
begin
  // Создание контекста воспроизведения OpenGL и привязка его к панели на форме
  OpenGLControl1:=TOpenGLControl.Create(Self);
  with OpenGLControl1 do begin
    Name:='OpenGLControl1';
    Align:=alClient;
    Parent:=Panel1;
  end;
 
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 glClearColor (0, 0, 0, 0); // цвет фона
 glClear (GL_COLOR_BUFFER_BIT);      // очистка буфера цвета
 glMatrixMode(GL_MODELVIEW);  // Выбор видовой матрицы
 glLoadIdentity();   //  Установка в единичные значения
 glOrtho(0, 1, 0, 1, -1 ,1); // Установка проекции окна
 //glTranslatef(0.5,0.5,0);  // Сдвиг
 //glRotatef(10, 0, 0, 0);   // Вращение
 glBegin(GL_TRIANGLES);      // Рисование треугольника
       glColor3f(1.0,0.0,0.0);     // Красный
       glVertex3f(1,0,0 ); // Верх треугольника (Передняя)
       glColor3f(0.0,1,0.0);
       glVertex3f( 0,1,0);
       glColor3f(0,0,1);
       glVertex3f( 0,0,0);
 glEnd;
 OpenGLControl1.SwapBuffers; // Отрисовка из буффера
end;
 
end.

Запускаю - ошибка
Миниатюры
Выдает ошибку в работе с OpenGL  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2017, 19:04
Ответы с готовыми решениями:

Почему программа при работе выдает ошибку 'INVALID POINTER OPERATION' и работает потом как надо?
Суть в следующем: программа генерирует задания, создает через Create панель на нее помещает...

Программа которая выдает платформу компьютера выдает ошибку
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Выдает ошибку
В одномерном массве состоящем из n вещественных элементов вычислить: сумму элеменотов массива...

Программа выдает ошибку
Задание Необходимо зашифровать и расшифровать слово ЗАБАВА с помощью матрицы-ключа unit Unit1; ...

7
356 / 124 / 3
Регистрация: 25.01.2012
Сообщений: 5,467
Записей в блоге: 119
31.10.2017, 19:13  [ТС] 2
А нет - это моя там ошибка.
Вот ошибка в 67 строке
Миниатюры
Выдает ошибку в работе с OpenGL  
0
356 / 124 / 3
Регистрация: 25.01.2012
Сообщений: 5,467
Записей в блоге: 119
31.10.2017, 20:19  [ТС] 3
Вот именно эта строка
Pascal
1
OpenGLControl1.SwapBuffers; // Отрисовка из буффера
Добавлено через 38 минут
Я не знаю - может полностью GLUT заюзать, но даст-ли он мне усечения объектов плоскостью, мне это - самое главное.
0
356 / 124 / 3
Регистрация: 25.01.2012
Сообщений: 5,467
Записей в блоге: 119
31.10.2017, 20:38  [ТС] 4
И вот я по новой компонент разместил на форме, с удалением которого первая ошибка пропала, теперь такая ошибка
Миниатюры
Выдает ошибку в работе с OpenGL  
0
356 / 124 / 3
Регистрация: 25.01.2012
Сообщений: 5,467
Записей в блоге: 119
01.11.2017, 14:17  [ТС] 5
Нашёл папку с примерами, думаю разберусь, всё работает, да ещё как
примеры использования - в lazarus/examples/openglcontrol/openglcontrol_demo.lpi
0
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
02.11.2017, 08:18 6
Попробуйте перед 67-й строкой вставить
Delphi
1
2
glFlush(); // Завершить расчёты и вывести изображение на экран (без этой про-
  // цедуры может выводиться рисунок с пропущенными элементами).
0
389 / 188 / 47
Регистрация: 11.07.2013
Сообщений: 1,120
02.11.2017, 08:49 7
Собрал по вашему коду. процедура glFlush() не нужна, работает 333.rar. Возможно у вас не установлен пакет lazopenglcontext.lpk, попробуйте в параметрах проекта указать путь к пакету (...\components\opengl). А вообще, мне кажется, на много проще размещать визуальный компонент TOpenGLControl на форме, а не создавать его динамически.
1
356 / 124 / 3
Регистрация: 25.01.2012
Сообщений: 5,467
Записей в блоге: 119
02.11.2017, 20:28  [ТС] 8
компонент я и перетаскивал на форму, тогда выскакивала ошибка, убирал - ошибка была но другая. Спасибо, буду разбираться потихоньку.
0
02.11.2017, 20:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2017, 20:28
Помогаю со студенческими работами здесь

Polygon выдает ошибку
программа рисует звезды на PaintBox При компиляции выдается ошибка в строке 62 "Fatal: Syntax...

выдает ошибку в программе
procedure TForm1.FormCreate(Sender: TObject); function delete (t:string):string; var...

После установки библиотеки Rx выдает ошибку

При запуске Delphi 7 выдает ошибку
У меня Windows7 32bit. Когда запускаю проект, выскакивает вот такая бяка. Я уж и прописывал папку...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru