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/