OGL - вывод на несколько панелей

faberge 20.06.2004 - 23:07 | Вечер добрый. Работаю на билдере - нужно сделать вывод графики на несколько панелей, расположеннвй на одной форме. Реализовал так - есть 3 массива - один HDC, другой HGLRC. На таймер поставил ф - цию отрисовки - в цикле работает примерно так: HDC m_dcCnt[p_num] HGLRCm_glCnt[p_num] for(INT i=0;i<p_num;i++) { // вроде как делаю текущим i - ый контекст if(!wglMakeCurrent(GetDC(m_dcCnt[i]),m_glCnt[i])) throw "MakeCurrent error"; // и в в зависимости от i вывожу что нужно switch(i) { case 0: { glClearColor(1.0, 1.0, 1.0, 0.0); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); // somedraw glFinish(); SwapBuffers(wglGetCurrentDC()); } ; break; case 1: // аналог первого cas`а .... case n: } } Проблема в том, что где - то происходит утечка памяти, причем точно известно, что на ф-ции таймера, то бишь на отрисовке.... Что может быть не так? Я что - то не освобождаю(контексты?...)?...
starfair 1 - 21.06.2004 - 08:14 | Ну вообще то, если у тебя не стиль окна WS_OWNDC то, когда используешь GetDC необходимо в этой же функции освобождать контекст по ReleaseDC.
faberge 2 - 21.06.2004 - 10:17 | А... блин! Не, не окно - я это пихаю на TPanel... Все, ясно. В wglMakeCurrent() нужно было пихать уже готовый HDC, а не Get`ить его в каждом цикле, а при закрытии как ты и написал - освободить.Утро вечера мудренее..
starfair 3 - 21.06.2004 - 10:42 | Да я понимаю что на панель :) Просто предпочитаю WinAPI знаете ли, что бы подобным вотгимором не страдать ;)
faberge 4 - 21.06.2004 - 11:00 | В смысле?
starfai 5 - 21.06.2004 - 13:32 | В смысле контроля за кодом. По крайней мере, я куда более четко представляю что хочу сделать, и могу куда больше контролировать как сделать, что я хочу, на WinAPI, чем используя кубики в Билдере

>>