<?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=GIModel.SimpleModel</id>
	<title>GIModel.SimpleModel - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=GIModel.SimpleModel"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=GIModel.SimpleModel&amp;action=history"/>
	<updated>2026-04-04T16:50:46Z</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=GIModel.SimpleModel&amp;diff=4915&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=GIModel.SimpleModel&amp;diff=4915&amp;oldid=prev"/>
		<updated>2025-01-22T06:53:43Z</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=GIModel.SimpleModel&amp;diff=4914&amp;oldid=prev</id>
		<title>1&gt;Admin at 11:50, 20 January 2025</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=GIModel.SimpleModel&amp;diff=4914&amp;oldid=prev"/>
		<updated>2025-01-20T11:50:26Z</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=GIModel.New&lt;br /&gt;
|object=[[Объект 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;
Функция сопоставляет буфер с микрокодом с текущей моделью. Буфер может быть как сопоставлен с текущей моделью (любые изменения в нем приведут к изменениям в модели), так и скопирован в независимую область памяти при сопоставлении, что медленнее при создании, но, возможно более удобно, если модель не изменяется вообще. Выбор подхода остается на усмотрении разработчика, обычно удобнее сопоставлять буфер и этот способ работает по умолчанию. Буфер обычно удобно заполнять функцией [[Buffer.AddValues|AddValues]], либо загружать заранее подготовленную модель из файла.&lt;br /&gt;
&lt;br /&gt;
Микрокод зависит от текущей графической спецификации. Микрокод представляет собой последовательность двойных слов (32 бита, но могут быть и слова 64 бита) в буфере с номерами команд спецификации и их аргументами (чаще всего вещественные числа 32 бит или целые числа 32 бит) по данной ниже таблице. При прорисовке модели, система проходит по всем командам буфера до тех пор, пока она не встретит команду 0 или конец буфера. Данный способ прорисовки гораздо быстрее прямого вызова графических команд, так как он происходит на низком уровне. Ниже дана таблица микрокода для спецификации OpenGL:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; style=&amp;quot;border-collapse:collapse;font-size:80%;width=95%;&amp;quot;&lt;br /&gt;
! width=10%|Команда (32 бит)&lt;br /&gt;
! Аргументы&lt;br /&gt;
! width=35%|Соответствующая команда OpenGL&lt;br /&gt;
|-&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''0'''&lt;br /&gt;
|Аргументов нет. Команда окончания рисования.&lt;br /&gt;
|&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''1'''&lt;br /&gt;
|Один аргумент int32, параметр glBegin. Может быть GI.GL_POINTS, GI.GL_LINES, GI.GL_QUADS и т.д.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBegin&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''2'''&lt;br /&gt;
|Аргументов нет. Окончание транзакции рисования glEnd.&lt;br /&gt;
|&amp;lt;code&amp;gt;glEnd&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''3'''&lt;br /&gt;
|Один аргумент int32, параметр glEnable.&lt;br /&gt;
|&amp;lt;code&amp;gt;glEnable&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''4'''&lt;br /&gt;
|Один аргумент int32, параметр glDisable.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDisable&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''5'''&lt;br /&gt;
|Два аргумента int32, один single, параметры glTexEnv.&lt;br /&gt;
|&amp;lt;code&amp;gt;glTexEnv&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''6'''&lt;br /&gt;
|Два аргумента int32, параметр glBlendFunc.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBlendFunc&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''7'''&lt;br /&gt;
|Четыре аргумента int32, параметры glBlendFuncSeparate.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBlendFuncSeparate&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''8'''&lt;br /&gt;
|Один аргумент int32, параметр glBlendEquation.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBlendEquation&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''9'''&lt;br /&gt;
|Два аргумента int32, параметры glBlendEquationSeparate.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBlendEquationSeparate&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''10'''&lt;br /&gt;
|Четыре аргумент single, параметры glBlendColor.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBlendColor&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''11'''&lt;br /&gt;
|Четыре аргумента int32, параметр glColorMask.&lt;br /&gt;
|&amp;lt;code&amp;gt;glColorMask&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''12'''&lt;br /&gt;
|Один аргумент int32, параметр glLogicOp.&lt;br /&gt;
|&amp;lt;code&amp;gt;glLogicOp&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''13'''&lt;br /&gt;
|Один аргумент int32, параметр glDrawBuffer.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawBuffer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''14'''&lt;br /&gt;
|Один аргумент int32 -- количество буферов (N), затем N-аргументов int32 перечисляющих эти буферы.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawBuffers&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''100'''&lt;br /&gt;
|Три аргумента single, параметры glVertex.&lt;br /&gt;
|&amp;lt;code&amp;gt;glVertex&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''101'''&lt;br /&gt;
|Три аргумента single, параметры glColor.&lt;br /&gt;
|&amp;lt;code&amp;gt;glColor&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''102'''&lt;br /&gt;
|Шесть аргументов single, параметры glMaterial (см. glMaterialfv)&lt;br /&gt;
|&amp;lt;code&amp;gt;glMaterial&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''103'''&lt;br /&gt;
|Три аргумента single, параметры glTexCoord.&lt;br /&gt;
|&amp;lt;code&amp;gt;glTexCoord&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''104'''&lt;br /&gt;
|Три аргумента single, параметры glNormal.&lt;br /&gt;
|&amp;lt;code&amp;gt;glNormal&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''105'''&lt;br /&gt;
|Один аргумент int32, параметр glEdgeFlag.&lt;br /&gt;
|&amp;lt;code&amp;gt;glEdgeFlag&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''106'''&lt;br /&gt;
|Один аргумент single, параметры glFogCoord.&lt;br /&gt;
|&amp;lt;code&amp;gt;glFogCoord&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''110'''&lt;br /&gt;
|Три аргумента int32, параметры glDrawArrays.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawArrays&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''111'''&lt;br /&gt;
|Три аргумента int32 (mode, count, type), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawElements&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''112'''&lt;br /&gt;
|Пять аргументов int32 (mode, starts, end, count, type), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawRangeElements&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''113'''&lt;br /&gt;
|Четыре аргумента int32, параметры glDrawArraysInstanced.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawArraysInstanced&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''114'''&lt;br /&gt;
|Четыре аргумента int32 (mode, count, type, instancecount), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawElementsInstanced&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''115'''&lt;br /&gt;
|Четыре аргумента int32 (mode, count, type, basevertex), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawElementsBaseVertex&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''116'''&lt;br /&gt;
|Шесть аргументов int32 (mode, start, end, count, type, basevertex), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawRangeElementsBaseVertex&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''117'''&lt;br /&gt;
|Пять аргументов int32 (mode, count, type, instancecount, basevertex), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawElementsInstancedBaseVertex&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''118'''&lt;br /&gt;
|Один аргумент int32 (mode), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawArraysIndirect&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''119'''&lt;br /&gt;
|Два аргумента int32 (mode, type), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawElementsIndirect&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''120'''&lt;br /&gt;
|Два аргумента int32 (mode, id)&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawTransformFeedback&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''121'''&lt;br /&gt;
|Три аргумента int32 (mode, id, stream)&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawTransformFeedbackStream&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''122'''&lt;br /&gt;
|Пять аргументов int32, параметры glDrawArraysInstancedBaseInstance.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawArraysInstancedBaseInstance&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''123'''&lt;br /&gt;
|Пять аргументов int32 (mode, count, type, instancecount, baseinstance), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawElementsInstancedBaseInstance&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''124'''&lt;br /&gt;
|Шесть аргументов int32 (mode, count, type, instancecount, basevertex, baseinstance), один аргумент int32 (размер данных в байтах), далее N-байт данных.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawElementsInstancedBaseVertexBaseInstance&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''125'''&lt;br /&gt;
|Три аргумента int32, параметры glDrawTransformFeedbackInstanced.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawTransformFeedbackInstanced&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''126'''&lt;br /&gt;
|Четыре аргумента int32, параметры glDrawTransformFeedbackStreamInstanced.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDrawTransformFeedbackStreamInstanced&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''130'''&lt;br /&gt;
|Два аргумента int32 (mode, drawcount), один аргумент int32 (размер массива начальных индексов &amp;quot;first&amp;quot; в '''байтах'''), один аргумент int32 (размер массива количеств индексов &amp;quot;count&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;first&amp;quot;, далее N-байт массив &amp;quot;count&amp;quot;.&lt;br /&gt;
|&amp;lt;code&amp;gt;glMultiDrawArrays&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''131'''&lt;br /&gt;
|Три аргумента int32 (mode, type, drawcount), один аргумент int32 (размер массива количеств &amp;quot;count&amp;quot; в '''байтах'''), один аргумент int32 (размер массива индексов &amp;quot;*indices&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;count&amp;quot;, далее N-байт массив &amp;quot;*indices&amp;quot;. '''Внимание''': массив &amp;quot;*indices&amp;quot; должен содержать реальные адреса в памяти (см. [[Buffer.SystemAddress]]).&lt;br /&gt;
|&amp;lt;code&amp;gt;glMultiDrawElements&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''132'''&lt;br /&gt;
|Три аргумента int32 (mode, type, drawcount), один аргумент int32 (размер массива количеств &amp;quot;count&amp;quot; в '''байтах'''), один аргумент int32 (размер массива индексов &amp;quot;*indices&amp;quot; в '''байтах'''), один аргумент int32 (размер массива вертексов &amp;quot;basevertex&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;count&amp;quot;, далее N-байт массив &amp;quot;*indices&amp;quot;, далее N-байт данных массив &amp;quot;basevertex&amp;quot;. '''Внимание''': массив &amp;quot;*indices&amp;quot; должен содержать реальные адреса в памяти (см. [[Buffer.SystemAddress]]).&lt;br /&gt;
|&amp;lt;code&amp;gt;glMultiDrawElementsBaseVertex&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''133'''&lt;br /&gt;
|Три аргумента int32 (mode, drawcount, stride), один аргумент int32 (размер массива записей &amp;quot;indirect&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;indirect&amp;quot; -- элементы этого массива содержат более одного значения, см. описание.&lt;br /&gt;
|&amp;lt;code&amp;gt;glMultiDrawArraysIndirect&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''134'''&lt;br /&gt;
|Четыре аргумента int32 (mode, type, drawcount, stride), один аргумент int32 (размер массива записей &amp;quot;indirect&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;indirect&amp;quot; -- элементы этого массива содержат более одного значения, см. описание.&lt;br /&gt;
|&amp;lt;code&amp;gt;glMultiDrawElementsIndirect&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''135'''&lt;br /&gt;
|Четыре аргумента int32 (mode, drawcount, maxdrawcount, stride), один аргумент int32 (размер массива записей &amp;quot;indirect&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;indirect&amp;quot; -- элементы этого массива содержат более одного значения, см. описание.&lt;br /&gt;
|&amp;lt;code&amp;gt;glMultiDrawArraysIndirectCount&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''136'''&lt;br /&gt;
|Пять аргументов int32 (mode, type, drawcount, maxdrawcount, stride), один аргумент int32 (размер массива записей &amp;quot;indirect&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;indirect&amp;quot; -- элементы этого массива содержат более одного значения, см. описание.&lt;br /&gt;
|&amp;lt;code&amp;gt;glMultiDrawElementsIndirectCount&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''200'''&lt;br /&gt;
|Одни аргумент int32, параметр glActiveTexture.&lt;br /&gt;
|&amp;lt;code&amp;gt;glActiveTexture&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''201'''&lt;br /&gt;
|Два аргумента int32, параметры glBindTexture.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBindTexture&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''202'''&lt;br /&gt;
|Три аргумента int32 (size, type, stride), один аргумент int32 (размер массива &amp;quot;pointer&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;pointer&amp;quot;.&lt;br /&gt;
|&amp;lt;code&amp;gt;glVertexPointer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''203'''&lt;br /&gt;
|Два аргумента int32 (type, stride), один аргумент int32 (размер массива &amp;quot;pointer&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;pointer&amp;quot;.&lt;br /&gt;
|&amp;lt;code&amp;gt;glIndexPointer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''204'''&lt;br /&gt;
|Два аргумента int32 (type, stride), один аргумент int32 (размер массива &amp;quot;pointer&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;pointer&amp;quot;.&lt;br /&gt;
|&amp;lt;code&amp;gt;glNormalPointer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''205'''&lt;br /&gt;
|Три аргумента int32 (size, type, stride), один аргумент int32 (размер массива &amp;quot;pointer&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;pointer&amp;quot;.&lt;br /&gt;
|&amp;lt;code&amp;gt;glTexCoordPointer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''206'''&lt;br /&gt;
|Три аргумента int32 (size, type, stride), один аргумент int32 (размер массива &amp;quot;pointer&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;pointer&amp;quot;.&lt;br /&gt;
|&amp;lt;code&amp;gt;glColorPointer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''207'''&lt;br /&gt;
|Один аргумент int32 (stride), один аргумент int32 (размер массива &amp;quot;pointer&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;pointer&amp;quot;.&lt;br /&gt;
|&amp;lt;code&amp;gt;glEdgeFlagPointer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''208'''&lt;br /&gt;
|Пять аргументов int32 (index, size, type, normalized, stride), один аргумент int32 (размер массива &amp;quot;pointer&amp;quot; в '''байтах'''), далее N-байт данных массив &amp;quot;pointer&amp;quot;.&lt;br /&gt;
|&amp;lt;code&amp;gt;glVertexAttribPointer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''210'''&lt;br /&gt;
|Один аргумент int32, параметр glEnableVertexAttribArray.&lt;br /&gt;
|&amp;lt;code&amp;gt;glEnableVertexAttribArray&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''211'''&lt;br /&gt;
|Один аргумент int32, параметр glDisableVertexAttribArray.&lt;br /&gt;
|&amp;lt;code&amp;gt;glDisableVertexAttribArray&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''220'''&lt;br /&gt;
|Один аргумент int32, параметр glBindVertexArray.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBindVertexArray&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''221'''&lt;br /&gt;
|Два аргумента int32, параметры glBindBuffer.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBindBuffer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''222'''&lt;br /&gt;
|Четыре аргумента int32, параметры glBindVertexBuffer.&lt;br /&gt;
|&amp;lt;code&amp;gt;glBindVertexBuffer&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''300'''&lt;br /&gt;
|Один аргумента int32, параметр glUseProgram.&lt;br /&gt;
|&amp;lt;code&amp;gt;glUseProgram&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''301'''&lt;br /&gt;
|Три аргумента int32 (уникальный номер переменной программы шейдеров, количество значений для переменных-массивов (к примеру, см. &amp;lt;code&amp;gt;glUniform2fv&amp;lt;/code&amp;gt;, для обычных переменных этот аргумент обычно равен '''1'''), тип значений). Далее, в зависимости от типа значений, следуют значения или их системный адрес. Тип значений представлят собой битовую маску со следующими битами (&amp;lt;code&amp;gt;ATttttSSSSssss&amp;lt;/code&amp;gt;):&lt;br /&gt;
* '''биты 0..3''' (ssss): количество чисел в значении (к примеру, для &amp;lt;code&amp;gt;glUniform2f&amp;lt;/code&amp;gt;, два числа).&lt;br /&gt;
* '''биты 4..7''' (SSSS): только для переменных-матриц, количество чисел в матрице по вертикали (к примеру, для &amp;lt;code&amp;gt;glUniformMatrix2f&amp;lt;/code&amp;gt; равно 1, для &amp;lt;code&amp;gt;glUniformMatrix4x3f&amp;lt;/code&amp;gt; равно 4).&lt;br /&gt;
* '''биты 8..11''' (tttt): числовой тип значений. '''0''' -- single float, '''1''' -- int32, '''2''' -- uint32 (без знака), '''3''' -- double float (если поддерживается драйвером)&lt;br /&gt;
* '''бит 12''' (T): только для переменных-матриц, '''1''', если матрица транспонирована (другой порядок значений).&lt;br /&gt;
* '''бит 13''' (A): вместо самих значений последующий аргумент -- 64-битный системный адрес массива значений. И для x86 и для x64 аргумент занимает 8 байт, для x86 последние 4 байта игнорируются.&lt;br /&gt;
&lt;br /&gt;
Примеры: &amp;lt;code&amp;gt;glUniformMatrix2f&amp;lt;/code&amp;gt;: '''$012''', &amp;lt;code&amp;gt;glUniformMatrix4x3f&amp;lt;/code&amp;gt;: '''$043''', &amp;lt;code&amp;gt;glUniform3f&amp;lt;/code&amp;gt;: '''$003''' и т.п.&lt;br /&gt;
|&amp;lt;code&amp;gt;glUniform???&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''302'''&lt;br /&gt;
|Один аргумента int32 -- уникальный номер переменной программы шейдеров. Эта команда транслируется как &amp;lt;code&amp;gt;glUniform1f(&amp;lt;номер переменной&amp;gt;,&amp;lt;значение GI.WorldTime&amp;gt;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Заполнение &amp;lt;code&amp;gt;GI.WorldTime (u_time)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''303'''&lt;br /&gt;
|Один аргумента int32 -- уникальный номер переменной программы шейдеров. Эта команда транслируется как &amp;lt;code&amp;gt;glUniform2f(&amp;lt;номер переменной&amp;gt;,&amp;lt;значение GI.Width&amp;gt;,&amp;lt;значение GI.Height&amp;gt;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Заполнение &amp;lt;code&amp;gt;Width/Height (u_resolution)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''304'''&lt;br /&gt;
|Один аргумента int32 -- уникальный номер переменной программы шейдеров. Эта команда транслируется как &amp;lt;code&amp;gt;glUniform2f(&amp;lt;номер переменной&amp;gt;,&amp;lt;позиция мыши по X&amp;gt;,&amp;lt;позиция мыши по Y&amp;gt;)&amp;lt;/code&amp;gt;.&lt;br /&gt;
|Заполнение &amp;lt;code&amp;gt;mouse.x/mouse.y (u_mouse)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''400'''&lt;br /&gt;
|Аргументов нет. Выполнение glPushMatrix.&lt;br /&gt;
|&amp;lt;code&amp;gt;glPushMatrix&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''401'''&lt;br /&gt;
|Три аргумента single, движение текущей матрицы по x, y и z.&lt;br /&gt;
|&amp;lt;code&amp;gt;glTranslatef&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''402'''&lt;br /&gt;
|Три аргумента single, поворот текущей матрицы вокрут осей x, y и z.&lt;br /&gt;
|&amp;lt;code&amp;gt;glRotatef&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''403'''&lt;br /&gt;
|Три аргумента single, масштабирование текущей матрицы по осям x, y и z.&lt;br /&gt;
|&amp;lt;code&amp;gt;glScalef&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''404'''&lt;br /&gt;
|Аргументов нет. Выполнение glPopMatrix.&lt;br /&gt;
|&amp;lt;code&amp;gt;glPopMatrix&amp;lt;/code&amp;gt;&lt;br /&gt;
|-align=&amp;quot;left&amp;quot;&lt;br /&gt;
|'''405'''&lt;br /&gt;
|Один аргумент int32, параметр glMatrixMode.&lt;br /&gt;
|&amp;lt;code&amp;gt;glMatrixMode&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
{{Grey|GIModel.}}'''SimpleModel'''(''&amp;lt;Источник микрокода (BUFFER)&amp;gt;''{{Optional|,&amp;lt;Режим модели (INT)&amp;gt;{{Default|{{Eq}}0}}}})&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Аргументы ====&lt;br /&gt;
* &amp;lt;code&amp;gt;''&amp;lt;Источник микрокода (BUFFER)&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;
** '''бит 0''': ''0'' -- использовать функции спецификации с числами single (по умолчанию), иначе использовать функции с числами double, где это возможно. Не все драйверы могут поддерживать числа double.&lt;br /&gt;
** '''бит 1''': ''0'' -- указанный буфер будет ассоциирован с моделью, все изменения в буфере будут сказываться на модели (по умолчанию), иначе содержимое буфера будет скопировано в особую область памяти и модель будет рисоваться по этим данным.&lt;br /&gt;
&lt;br /&gt;
== Примеры ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//Используется фрагмент из обработки tetris.sfo&lt;br /&gt;
&lt;br /&gt;
//Создадим новую простую модель с пустым буфером&lt;br /&gt;
аБуфер:=Buffer.Create();&lt;br /&gt;
аМодель:=GIModel.New();&lt;br /&gt;
аМодель.SimpleModel(аБуфер);&lt;br /&gt;
&lt;br /&gt;
//Заполним буфер микрокодом&lt;br /&gt;
аСмещ:=0;&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,201,aGI.GL_TEXTURE_2D,0);//glBindTexture&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,300,лкПрограммы[3]);//ShaderProgramUse&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,301,aGI.ShaderProgramGetVariableID(лкПрограммы[3],&amp;quot;u_scrpos&amp;quot;),4,$004);&lt;br /&gt;
аБуфер.AddValues(аСмещ,104,x,aGI.Height-y,2*dx,2*dx);//u_scrpos&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,302,aGI.ShaderProgramGetVariableID(лкПрограммы[3],&amp;quot;u_time&amp;quot;));//u_time&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,301,aGI.ShaderProgramGetVariableID(лкПрограммы[3],&amp;quot;u_starttime&amp;quot;),1,$001);&lt;br /&gt;
аБуфер.AddValues(аСмещ,104,aGI.WorldTime);//u_starttime&lt;br /&gt;
    &lt;br /&gt;
аБуфер.AddValues(аСмещ,4,1,aGI.GL_QUADS);//glBegin&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,100);аБуфер.AddValues(аСмещ,104,x,y,-0.3);//glVertex&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,100);аБуфер.AddValues(аСмещ,104,x,y+2*dx,-0.3);//glVertex&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,100);аБуфер.AddValues(аСмещ,104,x+2*dx,y+2*dx,-0.3);//glVertex&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,100);аБуфер.AddValues(аСмещ,104,x+2*dx,y,-0.3);//glVertex&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,2);//glEnd&lt;br /&gt;
аБуфер.AddValues(аСмещ,4,0);//EOF&lt;br /&gt;
&lt;br /&gt;
//Создадим новый объект и добавим к нему эту модель&lt;br /&gt;
аОбъект:=aGI.AddObject(&amp;quot;EXP&amp;quot;);&lt;br /&gt;
аОбъект.Model(аМодель);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
</feed>