<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Авионика и Софт &mdash; Маски]]></title>
	<link rel="self" href="http://www.forum.aviosoft.ru/extern.php?action=feed&amp;tid=58&amp;type=atom" />
	<updated>2017-04-18T07:14:38Z</updated>
	<generator>PunBB</generator>
	<id>http://www.forum.aviosoft.ru/viewtopic.php?id=58</id>
		<entry>
			<title type="html"><![CDATA[Re: Маски]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=195#p195" />
			<content type="html"><![CDATA[<p>Здравствуйте!<br />К сожалению, разрабатывая механизм масок нам пришлось исходить из наших возможностей и думать о скорости прорисовки. Как мы поняли, речь идёт о маскировании телами примитивов. Данный механизм полностью основан на использовании буфера трафарета, который выделяется в видеопамяти видеоадаптера. При создании маски, прорисовка идёт не в буфер кадра, а именно в буфер трафарета. Чтобы группа 2 получила в распоряжение чистый слой маски, буфер трафарета необходимо очистить. А это достаточно затратная операция, время которой измеряется уже вплоть до миллисекунды. При этом не понятен критерий, для какой группы нужно очищать трафарет, а для какой нет. Что, если группе 1.2, как и группе 2, потребуется чистая маска? Таких очисток трафарета может происходить много, что в результате ‘убьёт’ производительность любой самой современной видеокарты.<br />Поэтому, реализуя механизм маскирования телами примитивов, мы перешли на более низкий уровень, дав пользователю возможность самому управлять очисткой слоя маски.<br />Режим прорисовки группы ‘Новая маска’ необходимо использовать в самом крайнем случае. Если область, которую на самом деле необходимо очистить небольшая, то может оказаться более быстрой по времени очистка этой области с помощью вырезки из маски телом, например, залитого прямоугольника.<br />Старайтесь всегда, когда это возможно, использовать отсечение с помощью секущей линии или секущего прямоугольника. Практически всегда они реализуются аппаратно и работают достаточно быстро.<br />По поводу дуги эллипса, посмотрите, пожалуйста, приложенный файл проекта.</p>]]></content>
			<author>
				<name><![CDATA[Admin]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=2</uri>
			</author>
			<updated>2017-04-18T07:14:38Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=195#p195</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Маски]]></title>
			<link rel="alternate" href="http://www.forum.aviosoft.ru/viewtopic.php?pid=194#p194" />
			<content type="html"><![CDATA[<p>На данный момент есть большое неудобство связанное с использованием масок. По нашей идее маска должна распространять свое действие только на свою подгруппу и не влиять на другие группы. Например<br />1<br /> 1.1<br /> 1.2<br /> ...<br /> 1.n<br />2<br /> 2.1<br /> 2.2</p><p>маска созданная в подруппе 1.1 должна уметь оказывать влияние на группы 1.*, но не должна сказываться на группе 2 и её подгруппах. А маска созданная в подгруппе 1.1.1 дожна &quot;работать&quot; только на 1.1.* причем не замещая 1.1, а перемножаясь с ней. Сейчас это не так.</p><p>Похожая проблема возникла и при попытке использовать маски внутри функций отрисовки. Например, мы пытались сделать функцию отрисовки дуги эллипса, для этого маской обрезали эллипс внутри функции. А после при попытке использовать эту функцию, не смогли ограничить маской зону отрисовки.</p>]]></content>
			<author>
				<name><![CDATA[gluhow]]></name>
				<uri>http://www.forum.aviosoft.ru/profile.php?id=45</uri>
			</author>
			<updated>2017-04-17T11:37:30Z</updated>
			<id>http://www.forum.aviosoft.ru/viewtopic.php?pid=194#p194</id>
		</entry>
</feed>
