PMG

Форумы по созданию игр
Текущее время: 23 апр 2024 12:44

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Рисование на TPanel - помогите разобраться новичку.
СообщениеДобавлено: 26 окт 2011 21:23 
Не в сети
Новичок

Зарегистрирован: 26 окт 2011 21:10
Сообщения: 1
Всем доброго времени суток!
Есть такая проблема: создаю два контекста отображения - для формы и для TPanel, которая находится на форме. В FormPaint по очереди выделяю контексты изображения (wglMakeCurrent), рисую в них, затем очищаю буфер. При этом в первом контексте изображение рисуется, а во втором на TPanel - нет. Но если вызывать событие Paint для формы по таймеру, то изображение на TPanel все же появляется. Так же оно появляется и в том случае, если Paint для формы вызывать по клику мыши.

Буду очень, очень благодарна, если кто-нибудь поможет мне разобраться, в чем тут дело и как это исправить.

Вот код функции FormPaint для формы.
void __fastcall TForm1::FormPaint(TObject *Sender)
{
 wglMakeCurrent(hDC, ghRC); //в этом контексте изображение отрисовка происходит нормально
 glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
 glBegin(GL_LINES);
glColor3ub(255, 255, 0); //x
glVertex3f(-50, 0, 0);
glVertex3f(50, 0, 0);

glColor3ub(255, 0, 0);    //y
glVertex3f(0, 50, 0);
glVertex3f(0, -50, 0);

glColor3ub(255, 255, 255);//z
glVertex3f(0, 0, 50);
glVertex3f(0, 0, -50);
 glEnd();
 SwapBuffers(hDC);

 wglMakeCurrent(hDC1, ghRC1); //в этом случае на TPanel не отображается даже "черный экран"
 glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
 glBegin(GL_LINES);
glColor3ub(255, 255, 0); //x
glVertex3f(-50, 0, 0);
glVertex3f(50, 0, 0);

glColor3ub(255, 0, 0);    //y
glVertex3f(0, 50, 0);
glVertex3f(0, -50, 0);

glColor3ub(255, 255, 255);//z
glVertex3f(0, 0, 50);
glVertex3f(0, 0, -50);
 glEnd();
 SwapBuffers(hDC1);
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Рисование на TPanel - помогите разобраться новичку.
СообщениеДобавлено: 06 ноя 2011 13:39 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Надо вызывать обновление экрана TPanel средствами TPanel, а не только Opengl.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB