pascalabcnet/PABCNetHelp/PABCUnits/ABCObjects/FastABCDraw.html

40 lines
1.8 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html>
<head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="">
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
</head>
<body>
<H1>Ускорение перерисовки графических объектов</H1>
<p>Для обеспечения быстрой перерисовки используется следующий прием: в начале
программы вызывается <code>LockDrawingObjects</code>, а при необходимости перерисовать
весь экран специальная процедура <code>RedrawObjects</code>. Отключается режим вызовом <code>UnLockDrawingObjects</code>.
</p>
<p>При наличии большого количества объектов, каждый из которых движется, такой
прием может ощутимо ускорить анимацию. Причина здесь кроется в следующем: по
умолчанию при каждом движении объекта он перерисовывается в своем
прямоугольнике, при этом в этом прямоугольнике перерисовываются все объекты.
Если в графическом окне 100 объектов, и каждый из них переместился, то
происходит 100*100=10000 перерисовок объектов. После вызова <code>LockDrawingObjects</code>
перерисовки не происходит, а в результате вызова <code>RedrawObjects</code>
каждый объект прорисовывается только один раз, то есть происходит всего 100
перерисовок объектов.</p>
<p>Следует обратить внимание, что в модуле <code>GraphABC</code>
имеются родственные процедуры <code>LockDrawing</code>,
<code>UnLockDrawing</code>, &nbsp;и
<code>Redraw</code>. Однако, они отвечают за <i>
растровую перерисовку без мерцания</i>, в то время как процедуры <code>LockDrawingObjects</code>,
<code>UnLockDrawingObjects</code>, &nbsp;и <code>RedrawObjects</code>
отвечают только за <i>ускорение перерисовки векторной графики</i>
<code>ABCObjects</code> (отсутствие мерцания векторных объектов
при их изменении обеспечивается автоматически).
</p>
<p>&nbsp;</p>
</body>
</html>