<?xml version="1.0" encoding="utf-8" standalone="yes"?>

<?xml-stylesheet href="./_c74_ref.xsl" type="text/xsl"?>

<!--This is an automatically generated file. DO NOT EDIT THIS FILE DIRECTLY. Rather, use the _ref.xml files found in the 'edits' folder.-->
<c74object name="jit.gl.buffer" module="" category="">
	<digest>
		A buffer of mesh data on the GPU
	</digest>
	<description>
		The <o>jit.gl.buffer</o> object is a named reference to a buffer of data stored on the GPU. The data is rendered via <o>jit.gl.mesh</o>, and <o>jit.gl.tf</o> is used to perform transform feedback effects.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			glcore
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				messages to this 3d object and matrix input
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
		<inlet id="1" type="INLET_TYPE">
			<digest>
			</digest>
			<description>
				TEXT_HERE
			</description>
		</inlet>
	</inletlist>
	<!--OUTLETS-->
	<outletlist>
		<outlet id="0" type="OUTLET_TYPE">
			<digest>
				jit.gl.buffer output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--MESSAGES-->
	<methodlist>
		<method name="bang">
			<arglist />
			<digest>
				Output Buffer
			</digest>
			<description>
				Outputs the currently stored buffer out the left outlet as the message <m>jit_gl_buffer</m> followed by the buffer <at>name</at>.
			</description>
		</method>
	</methodlist>
	<jittermethodlist>
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="importattrs" />
		<jittermethod name="jit_matrix" />
		<jittermethod name="summary" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="instance_div" get="1" set="1" type="int" size="1">
			<digest>
				Instance Division
			</digest>
			<description>
				Divides the buffer by the value and applies the values across the total number of instances (default = 1). For example, could be used to create color groups in a large array of mesh instances. Requires <at>instanced</at> enabled.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Instance Division" />
			</attributelist>
		</attribute>
		<attribute name="instanced" get="1" set="1" type="int" size="1">
			<digest>
				Instance Enable
			</digest>
			<description>
				Enabling allows the buffer texture to pass different values to each drawn instance of a mesh when using <o>jit.gl.mesh</o> to perform hardware instancing (default = 0).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Instance Enable" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="map" get="1" set="1" type="symbol" size="1">
			<digest>
				Map buffer contents to named jit.matrix object
			</digest>
			<description>
				Takes the name of an existing <o>jit.matrix</o> object. When set the buffer data will be written to the named matrix every frame. The destination matrix will adapt dimensions and type appropriately to contain the contents of the buffer.
				<br />
				<br />
				To clear the mapping send the <at>map</at> message with no arguments.
			</description>
		</attribute>
		<attribute name="name" get="1" set="0" type="symbol" size="1">
			<digest>
				Internal name of buffer
			</digest>
			<description>
				Used internally to manage texture buffers.
			</description>
		</attribute>
		<attribute name="outname" get="1" set="1" type="symbol" size="1">
			<digest>
				Output Name Mapping
			</digest>
			<description>
				Required for use with <o>jit.gl.tf</o>, this name is used in the <o>jit.gl.shader</o> transform feedback shader code to process iterations of data on the buffer on the GPU. See the <link type="vignette" module="core" name="jitter_transform_feedback">transform-feedback</link> guide for more information.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Output Name Mapping" />
			</attributelist>
		</attribute>
		<attribute name="texbuf" get="1" set="1" type="int" size="1">
			<digest>
				Texture Buffer Enable
			</digest>
			<description>
				When enabled, the buffer is bound as a <link type="vignette" module="core" name="jitter_texture_buffers">texture buffer</link>, allowing for texture-style lookups in the shader code (default = 0). It is important to note that any normal textures will be bound first, and then texture buffers. Texture-buffers are accessed in the shader using the samplerBuffer sampler method.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Texture Buffer Enable" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="onoff" />
			</attributelist>
		</attribute>
		<attribute name="type" get="1" set="1" type="symbol" size="1">
			<digest>
				Input Type
			</digest>
			<description>
				Sets the type of the buffer to bind to as a texture (position, normal, color, vertex_attr0, etc). When passed to a <o>jit.gl.mesh</o> (or through a <o>jit.gl.tf</o>, then to a jit.gl.mesh), it will bind the texture to the mesh object's corresponding internal buffer.
			</description>
			<attributelist>
				<attribute name="enumvals" get="1" set="1" type="atom" size="10">
					<enumlist>
						<enum name="position">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="texcoord">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="normal">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="tangent">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="bitangent">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_attr">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_attr0">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_attr1">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_attr2">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="vertex_attr3">
							<digest>
								TEXT_HERE
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Input Type" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist />
	<!--EXAMPLE-->
	<examplelist>
		<example caption="" img="" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.gl.tf" />
		<seealso name="jit.gl.mesh" />
		<seealso name="jit.gl.shader" />
	</seealsolist>
</c74object>
