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

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

Страницы: 1 2 Следующая »
#0

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

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

29 окт. 2009

#1

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

29 окт. 2009

#2

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

29 окт. 2009

Прошло более 1 года
#3

можно цикл в конце 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));

21 сен. 2011

#4

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

21 сен. 2011

#5

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

22 сен. 2011

#6

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

d3dpp это D3DPRESENT_PARAMETERS

22 окт. 2011

#7

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

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

22 окт. 2011

#8

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

22 окт. 2011

#9

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

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

  if (windowActive) render();
}

22 окт. 2011

#10

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

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

23 окт. 2011

#11

Кстати.

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();
    }
  }

23 окт. 2011

#12

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

27 янв. 2012

#13

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

27 янв. 2012

#14

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

28 янв. 2012

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

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