Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание контекста воспроизведения! OpenGL 
:(
    Опции темы
Mephisto
Дата 1.11.2004, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



Существует следующая проблема: решил подключить библиотеки OpenGL к Visual Basicy, но столкнулся со следующей проблемой: не могу создать контекст воспроизведения. Что вообще это такое. Какую структуру имеет? Что содержит в себе HGLRC?
До момента вызова wglCreateContext всё идет нормально, результаты идентичны программе на С++, сравнивал результаты, но после...
Может кто владеет информацией поэтому поводу, пишите!
PM   Вверх
Mad
Дата 2.11.2004, 11:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: нет
Всего: 19



Mephisto
C VB я вобщето не работал, но в MSDN написанно что wgl функции определенны в wingdi.h, может проблемма в этом :hmmm


--------------------
user posted image
PM MAIL   Вверх
Gorbatovsky
Дата 2.11.2004, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 4.9.2003
Где: Киев

Репутация: нет
Всего: нет



контекст воспроизведения можно создать в окне или в памяти
// OpenGL требует наличия стилей WS_CLIPCHILDREN и WS_CLIPSIBLINGS
Код

int CView3d::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
  if (CView::OnCreate(lpCreateStruct) == -1)
        return -1;
// Формируем контекст рабочей области
  m_pDC = new CClientDC(this);

// Получаем дескриптор контекста устройства
HDC hdc = m_pDC->GetSafeHdc();
// Устанавливаем формат пикселей
   if (SetPixelFormat(hdc)==FALSE)
        return -1;

// Создаем и делаем текущим контекст воспроизведения
m_hglrc= ::wglCreateContext(hdc);

   if(m_hglrc  == NULL)
       return -1;
 return 0;
}



здесь еще одна функция
Код

BOOL CView3d::SetPixelFormat(HDC hdc)
{
//Step("SetPixelFormat\n");
// Заполняем поля структуры необходимыми значениями
 static PIXELFORMATDESCRIPTOR pfd =  {
   sizeof(PIXELFORMATDESCRIPTOR),  // размер структуры
   1,                              // номер версии
   PFD_DRAW_TO_WINDOW   | //  PFD_DRAW_TO_BITMAP поддержка вывода в память
     PFD_SUPPORT_OPENGL | PFD_GENERIC_ACCELERATED|       // поддержка OpenGL 3DACCELERATORа
     PFD_DOUBLEBUFFER,             // двойная буферизация
   PFD_TYPE_RGBA,         // цвета в режиме RGBA
   24,                    // 24-разряда на цвет
   0, 0, 0, 0, 0, 0,      // биты цвета игнорируются
   0,                     // не используется альфа параметр
   0,                     // смещение цветов игнорируются
   0,                     // буфер аккумулятора не используется
   0, 0, 0, 0,            // биты аккумулятора игнорируются
   32,                    // 32-разрядный буфер глубины
   8,                     // буфер трафарета не используется
   0,                     // вспомогательный буфер не используется
   PFD_MAIN_PLANE,        // основной слой
   0,                     // зарезервирован
   0, 0, 0                // маски слоя игнорируются
 };
 
 int pixelFormat;
 
// Поддерживает ли система необходимый формат пикселей?
 if((pixelFormat = ::ChoosePixelFormat(hdc, &pfd)) == 0){
   MessageBox("С заданным форматом пикселей работать нельзя");
   return FALSE;
 }

 if (::SetPixelFormat(hdc, pixelFormat, &pfd) == FALSE)
   {
       MessageBox("SetPixelFormat failed");
       return FALSE;
   }

 return TRUE;
}


PM MAIL ICQ   Вверх
Mad
Дата 3.11.2004, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

Репутация: нет
Всего: 19



Gorbatovsky
Цитата(Gorbatovsky @ 2.11.2004, 15:54)

// OpenGL требует наличия стилей WS_CLIPCHILDREN и WS_CLIPSIBLINGS

Ничего подобного, окно созданное с одним стилем WS_POPUPWINDOW нормально работает с OGL


--------------------
user posted image
PM MAIL   Вверх
Mephisto
Дата 4.11.2004, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: нет
Всего: 34



Цитата
OpenGL требует наличия стилей WS_CLIPCHILDREN и WS_CLIPSIBLINGS

Спасибо, всё, пора сливать воду. О стиле окна я не подумал.
Ладно сейчас попробую проверить, хотя в VB это достаточно проблематично.

Да, кстати, кто нить может перечислить все стили окон которые поддерживает OpenGL?

По поводу этого:
Цитата
здесь еще одна функция


Я это делаю до создания контекста воспроизведения. Всё проходит удачно.

Это сообщение отредактировал(а) Mephisto - 4.11.2004, 16:51
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0426 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.