Форум программистов, компьютерный форум, киберфорум
Delphi: Графика, звук, видео
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
22 / 7 / 0
Регистрация: 19.09.2009
Сообщений: 60

dglOpenGL выгодно или нет?

19.08.2010, 02:42. Показов 4432. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте товарищи программеры

В общем такая вот тема, сегодня где в интернете напоролся на такую библиотеку dglOpenGL, народ писал отзывы очень хорошие о ней... только вот никто не сказал как с ней работать потом на какомто форуме даже не понятно на каком языке этот форум был, я нашел кодик, вроде бы инициализации, все намного проще чем в OpenGL библиотеке, по крайней мере, все проще не так как описано в программировании ОГЛа в делфи, у того же Краснова, там замучаться можно, для меня, как для начинающего, трудно понять что к чему, а тут вот как-то проще понял всю систему инициализации и дальнейшей проработки проекта, так вот хотел спросить, правильно ли я сделал по примеру с форума, языка которого не понимал ?))))

вот я прикреплю сейчас проект, и посмотрите пожалуйста, нормально или нет
Вложения
Тип файла: rar dglOpengl.rar (220.5 Кб, 173 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.08.2010, 02:42
Ответы с готовыми решениями:

FPS в Delphi с использованием OpenGL (dglOpenGL)
Читал в гайде по OpenGL, что есть возможность регулировки FPS, но как, не объяснялось Можно ли узнать как это вообще делается, потому...

Криво работает алгоритм столкновений | Delphi 7 + dglOpenGL
Вообщем, я пишу игру бродилку типа Wolf3d/Doom. Юзаю Opengl 4.3(dglOpengl) и Delphi 7, так сказать, делаю самопальный движок(прям конкурент...

Ошибки в DLL при использовании dglopengl.pas
Есть функция которую реализую в DLL. В ней вызываются ф-ции из DglOpenGL.pas (Например glGenTextures(1, @Texture); и т.д.)после...

11
 Аватар для Flyrk
13 / 13 / 1
Регистрация: 19.08.2010
Сообщений: 47
19.08.2010, 04:37
если вы это сделали по примеру с форума, то нет сомнений правильно.
0
Заблокирован
19.08.2010, 04:54
Цитата Сообщение от Elch Посмотреть сообщение
все намного проще чем в OpenGL библиотеке, по крайней мере, все проще не так как описано в программировании ОГЛа в делфи, у того же Краснова
Куда уж проще то?
0
22 / 7 / 0
Регистрация: 19.09.2009
Сообщений: 60
19.08.2010, 13:02  [ТС]
Цитата Сообщение от NightmareZ Посмотреть сообщение
Куда уж проще то?
Да начал я разбираться с ней за ночь

ив от проблема.... при обновлении формы, у меня страшно мерцает изображение, даже сказать не мерцает, а как пленка чуть темного цвета чем я очищаю буффер, тянется через всю форму, делая тем самым очень плохие впечатления о всей работе , и вот двойная буфферизация включена, и все вот вроде хорошо, только вот такая небольшая пакасть, посмотрел я процедуру инициализации, и в ней уже встроен формат пиксела, так что его я сам какбы отформатировать не смогу уже, ну или надо лезть куда-то в этот исходник исправлять, что я не знаю где, как и почему ..., может можно что-то сделать такого, вот когда разбирался с OpenGl была такая же самая проблема, помогло от этого избавиться включением альфа бленда, ну тут вот если я его включаю мне выпрыгивает маленькое окошко с кнопкой ОК и ничего на нем не написано, нажимаю я эту ОК окошко закрывается, но если я начинаю что-то делать с формой, то это окошко выпрыгивает снова не давая тем самым скажем растягивать окно, или тыкать по нему мышкой... вот вроде все так удобно, и все так не хорошо получилось

кто знает чем помочь. помогите пожалуйста

P.S. включение на форме DoubleBuffered := True прошу не предлагать, с этого результат получается всегда: черное окно, и загрузка не знаю от чего, процессора, да и так прогрессивно, что он виснуть начинает
0
22 / 7 / 0
Регистрация: 19.09.2009
Сообщений: 60
20.08.2010, 14:45  [ТС]
Цитата Сообщение от Elch Посмотреть сообщение
Да начал я разбираться с ней за ночь

ив от проблема.... при обновлении формы, у меня страшно мерцает изображение, даже сказать не мерцает, а как пленка чуть темного цвета чем я очищаю буффер, тянется через всю форму, делая тем самым очень плохие впечатления о всей работе , и вот двойная буфферизация включена, и все вот вроде хорошо, только вот такая небольшая пакасть, посмотрел я процедуру инициализации, и в ней уже встроен формат пиксела, так что его я сам какбы отформатировать не смогу уже, ну или надо лезть куда-то в этот исходник исправлять, что я не знаю где, как и почему ..., может можно что-то сделать такого, вот когда разбирался с OpenGl была такая же самая проблема, помогло от этого избавиться включением альфа бленда, ну тут вот если я его включаю мне выпрыгивает маленькое окошко с кнопкой ОК и ничего на нем не написано, нажимаю я эту ОК окошко закрывается, но если я начинаю что-то делать с формой, то это окошко выпрыгивает снова не давая тем самым скажем растягивать окно, или тыкать по нему мышкой... вот вроде все так удобно, и все так не хорошо получилось

кто знает чем помочь. помогите пожалуйста

P.S. включение на форме DoubleBuffered := True прошу не предлагать, с этого результат получается всегда: черное окно, и загрузка не знаю от чего, процессора, да и так прогрессивно, что он виснуть начинает
Я кажется понял, в делфи все это ерунда выходит, и наверно никак этого не избежать, потому что читал книжку, к книжке были исходники автора, как он там все делал и бла бла бла, я его код запускал и там такая же бяка была... эх.... прийдется С учить
0
Заблокирован
20.08.2010, 17:22
Цитата Сообщение от Elch Посмотреть сообщение
Я кажется понял, в делфи все это ерунда выходит, и наверно никак этого не избежать, потому что читал книжку, к книжке были исходники автора, как он там все делал и бла бла бла, я его код запускал и там такая же бяка была... эх.... прийдется С учить
Что за поток сознания?

Чем тебе Краснов не угодил?
0
 Аватар для snake32
3502 / 1685 / 236
Регистрация: 26.02.2009
Сообщений: 8,387
Записей в блоге: 6
20.08.2010, 18:04
мерцание окна при изменении размеров происходит потому что винда обновляет окно и полностью заполняет канву формы цветом из свойства Color.
Вам всего лишь нужно добавить мессодж-метод формы на событие WM_ERASEBKGND
Delphi
1
2
3
4
5
6
7
8
9
10
TForm = class
...
procedure OnEraseBackground( var msg:TMessage ); message WM_ERASEBKGND;
...
end;
// где-то в implementation
procedure TForm.OnEraseBackground( var msg:TMessage );
begin
  msg.Result := 1;//когда Result = 1 винда не очищает фон
end;
0
22 / 7 / 0
Регистрация: 19.09.2009
Сообщений: 60
24.08.2010, 16:58  [ТС]
Цитата Сообщение от NightmareZ Посмотреть сообщение
Что за поток сознания?

Чем тебе Краснов не угодил?

На счет Краснова.....я промолчу... не нравится он мне, всмысле не Краснов , а его объяснения, много не понятно что и почему... я вот тут сижу и разбираю все по книжке OpenGL суперкнига, там хоть на С написано но более понятно и доступно для понимания, но код то с С перевести можно, за счет этой книги я понял намного больше чем я прочел этого Краснова... по крайней мере мне так вот... не знаю как другим.

Цитата Сообщение от snake32 Посмотреть сообщение
мерцание окна при изменении размеров происходит потому что винда обновляет окно и полностью заполняет канву формы цветом из свойства Color.
Вам всего лишь нужно добавить мессодж-метод формы на событие WM_ERASEBKGND
Delphi
1
2
3
4
5
6
7
8
9
10
TForm = class
...
procedure OnEraseBackground( var msg:TMessage ); message WM_ERASEBKGND;
...
end;
// где-то в implementation
procedure TForm.OnEraseBackground( var msg:TMessage );
begin
  msg.Result := 1;//когда Result = 1 винда не очищает фон
end;

на счет мерцания, я нашел кажись лекарство... это использование InvalidateRect ... его использую и вроде все в порядке со всем
0
 Аватар для snake32
3502 / 1685 / 236
Регистрация: 26.02.2009
Сообщений: 8,387
Записей в блоге: 6
24.08.2010, 19:42
Цитата Сообщение от Elch Посмотреть сообщение
на счет мерцания, я нашел кажись лекарство... это использование InvalidateRect
А до этого как было?
0
17 / 17 / 4
Регистрация: 06.07.2012
Сообщений: 510
11.07.2013, 17:12
Мерцание происходит из-за того, что метод Refresh работает слишком медленно. Вместо него надо использовать InvalidateRect(...), что было написано в книге Краснова.
Попробуйте назначить Refresh на одну клавишу, а InvalidateRect на другую, и обновлять экран - вы увидите разницу (пример приведен из книги Краснова(
0
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 4
11.07.2013, 22:52
В Вашем коде есть грубые ошибки (у меня он до правки вообще не работал).

Исправте следующее и все должно быть ок:

1.
procedure TForm1.FormCreate(Sender: TObject);
begin
DC := GetDC(Handle);
RC := CreateRenderingContext(Canvas.Handle,[opDoubleBuffered],32,24,0,0,0,0);
ActivateRenderingContext(DC, RC); // - добавить
end;

2.
procedure TForm1.FormPaint(Sender: TObject);
begin
//ActivateRenderingContext(DC, RC); - удалиь
wglMakeCurrent(Canvas.Handle, RC); //используйте, если у вас есть вариант одновременной работы нескольких окон
OpenGL
glClearColor(0.1,0.5,0.7,1.0);
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
glPointSize(10);
glBegin(GL_POINTS);
glColor3f(0.5,1.0,0.5);
glVertex2f(0.0,0.0);
glEnd;
SwapBuffers(DC);
//DeactivateRenderingContext; - удалить
end;

3.
procedure TForm1.FormResize(Sender: TObject);
begin
wglMakeCurrent(Canvas.Handle, RC);
glViewport(0, 0, ClientWidth, ClientHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
//wglMakeCurrent(0, 0); - удалить
Refresh;
end;
0
angstrom
12.07.2013, 02:49

Не по теме:


Уважаемые, прежде чем отвечать, смотрите на дату последнего сообщения - теме почти 3 года. Вряд ли ТС когда-либо прочитает ваши словоизлияния.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.07.2013, 02:49
Помогаю со студенческими работами здесь

Можно ли по названию платы,или по чипу,или по соккету,определить,поддерживает плата ХР или нет?
Добрый день всем.Уважаемые знатоки,я заранее прошу у Вас прощенья,если заданный мной вопрос,тупой или глупый. Но поверьте,я уже замучился...

Капитал воспроизводит труд или труд воспроизводит капитал, то есть во что выгодно инвестировать в капитал или в труд?
Капитал воспроизводит труд или труд воспроизводит капитал, то есть во что выгодно инвестировать в капитал или в труд?

Ошибка с массивами, хотя формально её нет (похожи ли массивы или нет?)
Всем доброго времени суток!) В общем имею такую великолепную чтуку, она должна говорить мне, похожи ли массивы или нет, массив должен...

Нет звука или нет звуковой карты
Всем привет! помогите кто может! У меня нет звука на компе, есть преположение что на комке нет звуковой карты, я даже не знаю где...

Вывести на экран слова, в которых все символы повторяющиеся, или сообщение «Нет», если требуемых слов нет
Дана последовательность символов, состоящая из слов. Вывести на экран слова, в которых все символы повторяющиеся, или сообщение «Нет», если...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru