<?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.ShaderAdd</id>
	<title>GI.ShaderAdd - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=GI.ShaderAdd"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=GI.ShaderAdd&amp;action=history"/>
	<updated>2026-04-05T00:22:49Z</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.ShaderAdd&amp;diff=4867&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=GI.ShaderAdd&amp;diff=4867&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.ShaderAdd&amp;diff=4866&amp;oldid=prev</id>
		<title>1&gt;Admin at 06:05, 22 January 2025</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=GI.ShaderAdd&amp;diff=4866&amp;oldid=prev"/>
		<updated>2025-01-22T06:05:20Z</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=ShaderAdd&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;
Функция добавляет новый шейдер с указанным типом в массив шейдеров. При добавлении происходит проверка синтаксиса и компиляция. В результате удачной операции, функция возвращает уникальный номер, по которому шейдер можно затем добавить в программу шейдеров. При ошибке будет вызвано исключение с развернутым описанием причины ошибки. Исходный текст может содержать комментарии с международными символами, использование международных символов в именах переменных и функций в исходных текстах шейдеров обычно не поддерживается. Процесс добавления шейдера включает процесс его компиляции графическим драйвером, поэтому, он может занимать небольшое время, которое может накапливаться, если необходимо добавить значительное количество шейдеров. При ошибке компиляции графический драйвер обычно возвращает развернутую информацию о ее причине.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
{{Grey|GI.}}'''ShaderAdd'''(''&amp;lt;Тип шейдера (INT)&amp;gt;'',''&amp;lt;Исходный текст шейдера (STRING)&amp;gt;''):''&amp;lt;Уникальный номер (INT)&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;
** '''0''': Шейдер фрагмента (fragment)&lt;br /&gt;
** '''1''': Шейдер вершины (vertex)&lt;br /&gt;
** '''2''': Шейдер геометрии (geometry)&lt;br /&gt;
** '''3''': Шейдер контроля тесселяции (tesselation control)&lt;br /&gt;
** '''4''': Шейдер оценки тесселяции (tesselation evaluation)&lt;br /&gt;
** '''5''': Шейдер вычислений (compute)&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Исходный текст шейдера (STRING)&amp;gt;''&amp;lt;/code&amp;gt; - Аргумент задает исходный текст для компиляции драйвером и превращении в псевдокод.&lt;br /&gt;
&lt;br /&gt;
==== Возвращаемое значение ====&lt;br /&gt;
Возвращается числовое значение.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Примитивный шейдер-пример, создающий белый фон&lt;br /&gt;
Стр:=&amp;quot;#version 130&lt;br /&gt;
|gl_FragColor=vec4(1,1,1,1);&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
//Создадим программу из шейдера&lt;br /&gt;
Прг:=aGI.ShaderProgramAdd(aGI.ShaderAdd(0,Стр));&lt;br /&gt;
&lt;br /&gt;
//Используем ее&lt;br /&gt;
aGI.ShaderProgramUse(Прг);&lt;br /&gt;
&lt;br /&gt;
//Выполним рисование&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;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
</feed>