Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.218.209.8] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте, нужна помощь. Хочу рисовать на двух формах одновременно(Builder). Инициализировал ОпенГЛ для обоих форм(нужно ли?), но обе формы закрашиваются черным, ничего не рисуется и вообщем все плохо. Я так понимаю, что-то с контекстами. Как правильно рисовать на двух формах?
|
Сообщ.
#2
,
|
|
|
Переключаться в любой момент или лучше в определенный? Я писал обработчики для событий OnAtivate, OnDisactivate:
void __fastcall TPic1::FormDeactivate(TObject *Sender) { wglMakeCurrent( hDC, NULL ); wglDeleteContext( hRC ); ReleaseDC( Handle, hDC ); hRC = NULL; hDC = NULL; } void __fastcall TPic1::FormActivate(TObject *Sender) { hDC = GetDC(Pic1->Handle); if(!bSetupPixelFormat(hDC)) Close(); hRC = wglCreateContext(hDC); wglMakeCurrent(hDC,hRC); } Но так не сработало, что не так написал? |
Сообщ.
#3
,
|
|
|
Что-то у меня не получается, т.е. из одной формы я переключаю контекст для другой формы и наоборот?
void Draw() //Form2 { glClear(GL_DEPTH_BUFFER_BIT^GL_COLOR_BUFFER_BIT); if(obj) obj->Paint(); SwapBuffers(hDC2); wglMakeCurrent(hDC,hRC); } .... void Draw() //Form1 { glClear(GL_DEPTH_BUFFER_BIT^GL_COLOR_BUFFER_BIT); if(obj) obj->Paint(); SwapBuffers(hDC); wglMakeCurrent(hDC2,hRC2); } Так не получилось. |
Сообщ.
#5
,
|
|
|
А, меня просто смутило слово лучше
|
Сообщ.
#6
,
|
|
|
albom, Спасибо, помогло, все работает. Только еще один вопросик: у тебя рисуется на TPanel, я попробывал рисовать на самой форме, но изображение мерцает, теперь вот рисую тоже на панельке. А в чем разница? И еще, при изменении размеров TPanel тоже изображение мерцает, можно ли что-нибудь сделать?
|
Сообщ.
#7
,
|
|
|
все, спс, решено.
|
Сообщ.
#8
,
|
|
|
OpenGLЗдравствуйте.Можете помогите пожалуйста с решением проблемы рисования на двух формах одновременно в OpenGL C++.
|
Сообщ.
#9
,
|
|
|
В чём конкретно заключается проблема?
|
Сообщ.
#10
,
|
|
|
OpenGLПроблема схожа с описанной в теме ранее.Одно окно рисует, а второе нет.Красит в черный цвет и все!!
|
Сообщ.
#11
,
|
|
|
Насколько помню, OpenGL предпочитает, чтобы в каждом окне кадр рисовался целиком от начала до конца.
|
Сообщ.
#12
,
|
|
|
Мне нужно чтобы кто-нибудь толково рассказал как переключать контексты.Думаю у меня проблема в этом.
|