<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=GI.ShaderProgramSetVariable</id>
	<title>GI.ShaderProgramSetVariable - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=GI.ShaderProgramSetVariable"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=GI.ShaderProgramSetVariable&amp;action=history"/>
	<updated>2026-04-04T13:00:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://sfsys.ru/index.php?title=GI.ShaderProgramSetVariable&amp;diff=4881&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=GI.ShaderProgramSetVariable&amp;diff=4881&amp;oldid=prev"/>
		<updated>2025-01-22T06:53:41Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:53, 22 January 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=GI.ShaderProgramSetVariable&amp;diff=4880&amp;oldid=prev</id>
		<title>1&gt;Admin at 06:24, 22 January 2025</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=GI.ShaderProgramSetVariable&amp;diff=4880&amp;oldid=prev"/>
		<updated>2025-01-22T06:24:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{infobox function&lt;br /&gt;
|name=ShaderProgramSetVariable&lt;br /&gt;
|object=[[Объект GI#Атрибуты и функции шейдеров и программ шейдеров|Шейдеры объекта GI]]&lt;br /&gt;
|caption=Функции шейдеров&lt;br /&gt;
|type=1&lt;br /&gt;
|status=2&lt;br /&gt;
|db=0&lt;br /&gt;
|exception=Неверные аргументы, недостаточно значений.&lt;br /&gt;
|visual=0}}&lt;br /&gt;
{{HeadLinks|&lt;br /&gt;
* [[Main_Page|Начальная страница]]&lt;br /&gt;
* [[Общее_описание_языка|Общее описание]]&lt;br /&gt;
* [[Объекты]]&lt;br /&gt;
* [[Объект GI]]}}&lt;br /&gt;
Функция устанавливает значение переменной (заданной по ее имени) программы шейдеров (заданной по ее уникальному номеру). Количество значений указывается для переменных, содержащих массивы, и задает количество значений в массиве. Значения могут быть заданы несколькими аргументами как числа (вещественные или целые), либо одним аргументом с типом список (содержащий сами значения), либо буфер или структура данных записи. В последнем случае, размера буфера с данными должно быть достаточно, чтобы уместить весь массив значений. Заданная один раз, переменная для данной программы шейдеров в дальнейшем сохраняет свое значение до того момента, пока программа не будет удалена или значение переменной не будет задано снова. '''Важно''': для спецификации OpenGL данную функцию нельзя использовать внутри последовательности &amp;lt;code&amp;gt;glBegin ... glEnd&amp;lt;/code&amp;gt;, иначе значение не будет установлено. Заданная один раз, переменная для данной программы шейдеров в дальнейшем сохраняет свое значение до того момента, пока программа не будет удалена или значение переменной не будет задано снова. См. также функцию [[GI.ShaderAddVariable|ShaderAddVariable]] для описания способа указания на типы переменных.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
{{Grey|GI.}}'''ShaderProgramSetVariable'''(''&amp;lt;Уникальный номер программы (INT)&amp;gt;'',''&amp;lt;Имя переменной (STRING)&amp;gt;''{{Optional|,&amp;lt;Количество значений (INT)&amp;gt;{{Default|{{Eq}}1}},&amp;lt;Значение 1&amp;gt;,&amp;lt;Значение 2&amp;gt;...}})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Аргументы ====&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Уникальный номер программы (INT)&amp;gt;''&amp;lt;/code&amp;gt; - Аргумент задает уникальный номер программы шейдеров, значение переменной которой необходимо изменить.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Имя переменной (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - Аргумент задает имя переменной программы шейдеров, значение переменной которой необходимо изменить. Обычно имена переменных не могут содержать менждународных символов.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Количество значений (INT)&amp;gt;''&amp;lt;/code&amp;gt; - {{Optional}} Аргумент задает количество значений в массиве, если переменная содержит массив.&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Значение 1&amp;gt;,&amp;lt;Значение 2&amp;gt;...''&amp;lt;/code&amp;gt; - {{Optional}} Аргументы задают значения, способ задания значений зависит от типа первого из аргументов значений. Доступны следующие типы:&lt;br /&gt;
** '''Буфер''' или '''Объект записи с буфером''': значения будут получены из буфера общий размер буфера должен быть не меньше размера одного значения с типом данной переменной (для ''vec4'', к примеру, это 4 значения по 4 байта = 16 байт) умноженного на количество значений, если переменная является массивом.&lt;br /&gt;
** '''Список''': значения будут получены из списка общее количество значений в списке должно быть не меньше количества чисел в одном значении с типом как у данной переменной (для ''vec4'', к примеру, это 4 значения) умноженного на количество значений, если переменная является массивом.&lt;br /&gt;
** '''Число''': все значения будут получены из аргументов функции. Общее количество значений должно быть равно количеству чисел в одном значении с типом как у данной переменной (для ''vec4'', к примеру, это 4 значения) умноженному на количество значений, если переменная является массивом.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
aGI.ShaderProgramSetVariable(аПрограмма,&amp;quot;u_pos0&amp;quot;,,x0,y0,dx,dx);  &lt;br /&gt;
aGI.ShaderProgramSetVariable(аПрограмма,&amp;quot;u_mode&amp;quot;,,?(лкРежимИгры=0,1,0));&lt;br /&gt;
aGI.ShaderProgramUse(аПрограмма);&lt;br /&gt;
aGI.glBegin(aGI.GL_QUADS);&lt;br /&gt;
aGI.glVertex3f(0,0,0.5);&lt;br /&gt;
aGI.glVertex3f(aGI.Width,0,0.5);&lt;br /&gt;
aGI.glVertex3f(aGI.Width,aGI.Height,0.5);&lt;br /&gt;
aGI.glVertex3f(0,aGI.Height,0.5);&lt;br /&gt;
aGI.glEnd();  &lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
</feed>