История изменений
Исправление X512, (текущая версия) :
все равно рисование идет в ограниченной области
Речь про предотвращение мерцания и тиринга, а не про оконные регионы. Например есть поток графических команд:
ClipToRect(100, 100, 200, 200);
FillRect(0, 0, 1000, 1000, 0xff0000);
ClipToRect(120, 120, 220, 220);
FillRect(0, 0, 1000, 1000, 0x00ff00);
ClipToRect(140, 140, 240, 240);
FillRect(0, 0, 1000, 1000, 0x0000ff);
Flush();
ClipToRect(100, 100, 200, 200);
FillRect(0, 0, 1000, 1000, 0xff0000);
ClipToRect(120, 120, 220, 220);
FillRect(0, 0, 1000, 1000, 0x00ff00);
ClipToRect(140, 140, 240, 240);
FillRect(0, 0, 1000, 1000, 0x0000ff);
Flush();
ClipToRect(100, 100, 200, 200);
FillRect(0, 0, 1000, 1000, 0xff0000);
ClipToRect(120, 120, 220, 220);
FillRect(0, 0, 1000, 1000, 0x00ff00);
ClipToRect(140, 140, 240, 240);
FillRect(0, 0, 1000, 1000, 0x0000ff);
Flush();
Без Flush()
вы не сможете узнать где закончился один кадр и начался новый и у вас будет мигать картинка в месте пересечения прямоугольников.
Исходная версия X512, :
все равно рисование идет в ограниченной области
Речь про предотвращение мерцания и тиринга, а не про оконные регионы. Например есть поток графических команд:
ClipToRect(100, 100, 200, 200);
FillRect(0, 0, 1000, 1000, 0xff0000);
ClipToRect(120, 120, 220, 220);
FillRect(0, 0, 1000, 1000, 0x00ff00);
ClipToRect(140, 140, 240, 240);
FillRect(0, 0, 1000, 1000, 0x00ff00);
Flush();
ClipToRect(100, 100, 200, 200);
FillRect(0, 0, 1000, 1000, 0xff0000);
ClipToRect(120, 120, 220, 220);
FillRect(0, 0, 1000, 1000, 0x00ff00);
ClipToRect(140, 140, 240, 240);
FillRect(0, 0, 1000, 1000, 0x00ff00);
Flush();
ClipToRect(100, 100, 200, 200);
FillRect(0, 0, 1000, 1000, 0xff0000);
ClipToRect(120, 120, 220, 220);
FillRect(0, 0, 1000, 1000, 0x00ff00);
ClipToRect(140, 140, 240, 240);
FillRect(0, 0, 1000, 1000, 0x00ff00);
Flush();
Без Flush()
вы не сможете узнать где закончился один кадр и начался новый и у вас будет мигать картинка в месте пересечения прямоугольников.