Войти
ПрограммированиеФорумГрафика

Мерцание при перетаскивании окна с 3D рендерингом (комментарии)

Страницы: 1 2 Следующая »
#0
12:18, 29 окт. 2009

Мерцание при перетаскивании окна с 3D рендерингом (комментарии)

Это сообщение сгенерировано автоматически.


#1
12:18, 29 окт. 2009

Правильнее так
case WM_ERASEBKGND: return 1;

#2
18:17, 29 окт. 2009

Еще сделать
case  WM_NCPAINT: return 0;
и все должно пройти. Если и после этого будут глюки - включить двойную буферизацию.

Прошло более 1 года
#3
22:30, 21 сен. 2011

можно цикл в конце WinMain на такой изменить:

while(msg.message != WM_QUIT)
{
    if(PeekMessage(&msg, 0, 0, 0, PM_REMOVE)
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }else
        Rendering();//функция рендеринга DX
}

как то так а

case WM_PAINT:
    Rendering();

убрать можно

тока msg надо обнулить ZeroMemory(&msg, sizeof(MSG));

#4
22:31, 21 сен. 2011

у меня всё норм идёт

#5
1:30, 22 сен. 2011

shadero
Я вообще ничего не вывожу пока идет перетаскивание.

#6
13:09, 22 окт. 2011

а лучше всё таки  d3dpp.windowed = false; и проблем нет потому что окна не видно

d3dpp это D3DPRESENT_PARAMETERS

#7
16:04, 22 окт. 2011

пять с плюсом за последнее решение! особенно, если человеку нужен оконный режим! (:

P.S. вы еще на дату нулевого поста посмотрите.

#8
17:04, 22 окт. 2011

bool
Да, ладно. Зато разобрались все...

#9
22:37, 22 окт. 2011

Ну, эт да, главное, что разобрались, но вообще, я считаю, что для реалтайм рендеринга не нужно юзать WM_PAINT. не потому что это плохо, а потому что: зачем?

while (running) {
  while (PeekMessage(...)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
  } 

  if (windowActive) render();
}

#10
23:43, 23 окт. 2011

bool
> while (running) {
> while (PeekMessage(...)) {
> TranslateMessage(&msg);
> DispatchMessage(&msg);
> }
>
> if (windowActive) render();
> }
+1

ЗЫ
некрофилы :))))

#11
23:49, 23 окт. 2011

Кстати.

while (running)
{ 
 while (PeekMessage(...)) 
 { 
  TranslateMessage(&msg); 
  DispatchMessage(&msg); 
 } 
 if (windowActive) render(); 
} 

vs

  while (_running)
  {
    if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
    {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
    }
    else
    {
      idle();
    }
  }
#12
15:09, 27 янв. 2012

Пора бы уже исправить ошибку, на которую указал Sergio. И добавить совет Deamon.

#13
16:48, 27 янв. 2012

Подправил.
Алмаз
> добавить совет Deamon
В его случае не будет рисоваться фрейм окна.
Алмаз
> исправить ошибку
Спорно что лучше указывать в возвращаемом значении - что фон был очищен или нет.

#14
0:31, 28 янв. 2012

shadero
> не будет рисоваться фрейм окна.
Так и задумано, если приложение полноэкранное.

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.