Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

OpenGL графика в любом открытом окне.

279
28 января 2005 года
bave
456 / / 07.03.2004
Получить идентификатор окна любого работающего приложения - дело не хитрое,
имея идентификатор окна можно получить и контекст окна.

Допустим есть какое-то открытое окно, нет проблемы получить его идентификатор,
пусть он будет hWnd. Следствено можно получить и контекст hDC = GetDC(hWnd);
Имея контекст окна можно без проблем нарисовать в нём что-нибудь графическими
средствами винды, например так:
CPen pen(PS_SOLID, 4, RGB (255, 0, 0));
SelectObject(hDC, pen);

Но совсем другое дело когда надо получить изображения не средствами виндюшной
графики, а например OpenGL'а. Это связано с тем, что здесь не достаточно иметь только
hDC, но также необходимо иметь пиксельный формат совместимый с OpenGL.
Сначало, я думал что проблем с этим не будет, но как оказалось напрасно, вобщем
для использования OpenGL графки в окнах уже запущенных приложениях
(когда я пишу приложения я имею в виду обычные виндюшные окна в которых там папки да
файлы всякие, а не какие-нибудь игрушки естественно) я делал так:

static PIXELFORMATDESCRIPTOR pfd=
{
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_DRAW_TO_WINDOW |
PFD_SUPPORT_OPENGL |
PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
16,
0, 0, 0, 0, 0, 0,
0,
0,
0,
0, 0, 0, 0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0, 0, 0
}; //заполнял pfd структуру.

hDC = GetDC(hWnd); //получал контекст.
PixelFormat = ChoosePixelFormat(hDC, &pfd); //Выбор наиболее подходящего формата.
SetPixelFormat(hDC, PixelFormat, &pfd); //Устанавливал этот формат.
hRC = wglCreateContext(hDC); //Захват контекста рендеринга.
Ну а после этого я попытался рисовать в окнах, используя средства OpenGL'а
результат вообще никакой. Компилятор никаких ошибок не нашёл, я запустил
программу, но никакого результата не увидел.
Вопрос в том, что не так я сделал, и как надо?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог