PMG https://forum.pmg.org.ru/ |
|
dglOpenGL https://forum.pmg.org.ru/viewtopic.php?f=1&t=8034 |
Страница 1 из 1 |
Автор: | Willka [ 18 авг 2010 21:13 ] |
Заголовок сообщения: | dglOpenGL |
Приветствую всех, итак имеется вопрос, прочитал что эта вот библиотека как бы проще, что ли сказать, чем глу глут и им подобным... так вот, информации по ее использовании не нашел почти, а именно хотяб как инициализировать ее и вообще где это сделать в каком обработчике... в общем нужна хоть какая информация по этому поводу, заранее большое спасибо. P.S. естественно работаю в делфи ![]() |
Автор: | isaer [ 19 авг 2010 13:00 ] |
Заголовок сообщения: | Re: dglOpenGL |
дельфи значит бери глут что может быть проще?? там и так все просто создать окно glutInitWindowSize(10, 10); glutInitWindowPosition(10, 10): glutCreateWindow("Window"); что может быть проще?? проще уже некуда работа с мышкой клавой там тоже простая лучше работай на глуте, но это я так считаю |
Автор: | Willka [ 19 авг 2010 13:32 ] |
Заголовок сообщения: | Re: dglOpenGL |
Хм.. я вроде бы тут уже задавал вопрос про глут, но мне никто толком ничего не написал, дело в том что я не мог его как-то инициализировать, и задавал вопрос по этому поводу, можете дать какой-то проект, желательно исходник + исполнитель, а то у меня ничего не получается сделать, в окно пишет ошибка в открытии библиотеки 00000000 и не может быть прочитаны какие-то толи функции толи процедуры и снова код ошибки 00000000 и вот не знаю как делать |
Автор: | MagicWolf [ 19 авг 2010 15:17 ] |
Заголовок сообщения: | Re: dglOpenGL |
dglOpenGL - это файл с расширениями OGL, это не библиотека, там просто ссылки на функции представлены как функции. Пользоваться как обычным OGL. |
Автор: | MagicWolf [ 19 авг 2010 15:18 ] |
Заголовок сообщения: | Re: dglOpenGL |
с glut я по Delphi не работал, посоветовал только работающие исходники. |
Автор: | Willka [ 19 авг 2010 15:29 ] |
Заголовок сообщения: | Re: dglOpenGL |
MagicWolf писал(а): dglOpenGL - это файл с расширениями OGL, это не библиотека, там просто ссылки на функции представлены как функции. Пользоваться как обычным OGL. Я немного разобрался с этой темой, там инициализация вообще одна строчка, одна функция, которую я посмотрел, там в нее включено уже все что нужно прописывать в обычном ОГЛе руками..., не посоветуете лекарство от мерцания при репеинте или при рефреше?, а то идет мерцание ужасное, включить форме двойную буфферезацию не поможет, выводится тупо черное окно, и начинает виснуть компьютер, когда разбирался с обычным ОГЛом помогла установка альфы бленда, а тут выдает ошибку |
Автор: | MagicWolf [ 19 авг 2010 16:45 ] |
Заголовок сообщения: | Re: dglOpenGL |
Не сталкивался с таким, переключение буферов делаете? |
Автор: | Willka [ 19 авг 2010 17:36 ] |
Заголовок сообщения: | Re: dglOpenGL |
MagicWolf писал(а): Не сталкивался с таким, переключение буферов делаете? всмысле? кодом объясните, больше для меня толку будет ![]() |
Автор: | isaer [ 19 авг 2010 19:40 ] |
Заголовок сообщения: | Re: dglOpenGL |
я когда то начинал на дельфи сейчас поищу вроде где то было |
Автор: | Willka [ 20 авг 2010 12:34 ] |
Заголовок сообщения: | Re: dglOpenGL |
isaer писал(а): я когда то начинал на дельфи сейчас поищу вроде где то было Пожалуйста очень прошу, хочу посмотреть как вы с глутом работали под дельфи, а то столько примеров, а глут не могу подключить, на с++ пока нет желания идти, я в самом разгаре дельфи сейчас |
Автор: | MagicWolf [ 23 авг 2010 11:10 ] |
Заголовок сообщения: | Re: dglOpenGL |
Willka писал(а): MagicWolf писал(а): Не сталкивался с таким, переключение буферов делаете? всмысле? кодом объясните, больше для меня толку будет ![]() Вот так обновление окна: Код: int COpenGL_Win::update_window () { if ( yes_init==0 ) return IS_QUIT; if ( !wglMakeCurrent(hDC_ogl_win, hRC_ogl_win) ) return return_error(IS_ERROR,"%s","update_window -> !wglMakeCurrent(hDC_ogl_win, hRC_ogl_win)"); if ( GLEE_ARB_multisample && os.samples_bits!=0 ) glEnable(GL_MULTISAMPLE_ARB); messages_window (); if ( quit_win ) return IS_QUIT; if ( scene_setting.max_fps==0 || (scene_setting.max_fps!=0 && timer.poll()>(old_timer+1.0/(float)scene_setting.max_fps)) ) { if ( work_scenes()!=IS_OK ) return rc; if ( draw_scenes()!=IS_OK ) return rc; if ( os.count_buffers==2 ) SwapBuffers(hDC_ogl_win); old_timer = timer.poll(); } if ( delay_update ) MsgWaitForMultipleObjects(0, NULL, false, (DWORD)delay_update, QS_ALLINPUT); return IS_OK; } Обрати внимание на SwapBuffers! А при инициализации надо взвести вот этот флаг: Код: if ( os.count_buffers==2 )
pfd.dwFlags |= PFD_DOUBLEBUFFER; |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |