<?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.pass" module="jit" category="Jitter Code Generation">
	<digest>
		Render scene passes with shader processing
	</digest>
	<description>
		The <o>jit.gl.pass</o> object encapsulates processing of one or more sub-passes. A sub-pass consists of a single frame of gl, and post-processing shader, and is defined in a xml pass description file (JXP). Complex scene-processing hierarchies can be obtained by chaining multiple <o>jit.gl.pass</o> objects.
	</description>
	<!--METADATA-->
	<metadatalist>
		<metadata name="author">
			Cycling '74
		</metadata>
		<metadata name="tag">
			Jitter
		</metadata>
	</metadatalist>
	<!--INLETS-->
	<inletlist>
		<inlet id="0" type="INLET_TYPE">
			<digest>
				messages to this 3d object
			</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>
				texture output
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="1" type="OUTLET_TYPE">
			<digest>
				connect to child jit.gl.pass objects
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
		<outlet id="2" type="OUTLET_TYPE">
			<digest>
				dumpout
			</digest>
			<description>
				TEXT_HERE
			</description>
		</outlet>
	</outletlist>
	<!--OB3D-->
	<OB3D />
	<!--MESSAGES-->
	<methodlist>
		<method name="anything">
			<arglist />
			<digest>
				Dynamic attributes
			</digest>
			<description>
				Get and set dynamic attributes generated from sub-pass shader parameters.
			</description>
		</method>
		<method name="(drag)">
			<digest>
				Drag and drop a .jxp file
			</digest>
			<description>
				Drag and drop a .jxp file
			</description>
		</method>
		<method name="(mouse)">
			<digest>
				Open the JXP file
			</digest>
			<description>
				Open the JXP file
			</description>
		</method>
		<method name="param">
			<arglist />
			<digest>
				Sets the given shader parameter with the given atom values as defined in a JXS (Jitter shader)
			</digest>
			<description>
				Sets the given shader parameter with the given atom values as defined in a JXS (Jitter shader) file.
			</description>
		</method>
		<method name="open">
			<arglist />
			<digest>
				Open the JXP file
			</digest>
			<description>
				Open the JXP file
			</description>
		</method>
		<method name="read">
			<arglist />
			<digest>
				Load a JXP file from disk
			</digest>
			<description>
				Load a JXP file from disk
			</description>
		</method>
	</methodlist>
	<jittermethodlist>
		<jittermethod name="bang" />
		<jittermethod name="anim_grow" />
		<jittermethod name="anim_move" />
		<jittermethod name="anim_reset" />
		<jittermethod name="anim_turn" />
		<jittermethod name="draw" />
		<jittermethod name="drawimmediate" />
		<jittermethod name="drawraw" />
		<jittermethod name="exportattrs" />
		<jittermethod name="exportsummary" />
		<jittermethod name="getattributes" />
		<jittermethod name="getstate" />
		<jittermethod name="jit_gl_texture" />
		<jittermethod name="importattrs" />
		<jittermethod name="summary" />
		<jittermethod name="update_node" />
	</jittermethodlist>
	<!--ATTRIBUTES-->
	<attributelist>
		<attribute name="child" get="1" set="1" type="symbol" size="1">
			<digest>
				Child jit.gl.pass name
			</digest>
			<description>
				The child jit.gl.pass name (default = none). Set automatically by patchcord connection, and manually by providing a valid jit.gl.pass object name.
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Child" />
			</attributelist>
		</attribute>
		<attribute name="depth_drawto" get="1" set="0" type="symbol" size="1">
			<digest>
				Depth drawto context name
			</digest>
			<description>
				Depth drawto gl context name. Unless set by user, depth_drawto equals <at>drawto</at> 
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Depth Drawto" />
			</attributelist>
		</attribute>
		<attribute name="file" get="1" set="1" type="symbol" size="1">
			<digest>
				JXP file name
			</digest>
			<description>
				JXP file name (default = none)
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="File" />
			</attributelist>
		</attribute>
		<attribute name="out_name" get="1" set="0" type="symbol" size="1">
			<digest>
				Output texture name
			</digest>
			<description>
				Output texture name (default = UID).
			</description>
			<attributelist>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Out Name" />
			</attributelist>
		</attribute>
		<attribute name="quality" get="1" set="1" type="symbol" size="1">
			<digest>
				Texture quality
			</digest>
			<description>
				Internal texture quality (deault = med). Changeing quality changes the <at>type</at> attribute of internal <o>jit.gl.texture</o> objects.
			</description>
			<attributelist>
				<attribute name="basic" get="1" set="1" type="int" size="1" value="1" />
				<attribute name="enumvals" get="1" set="1" type="atom" size="3">
					<enumlist>
						<enum name="lo">
							<digest>
								type = char
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="med">
							<digest>
								type = float16
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
						<enum name="hi">
							<digest>
								type = float32
							</digest>
							<description>
								TEXT_HERE
							</description>
						</enum>
					</enumlist>
				</attribute>
				<attribute name="label" get="1" set="1" type="symbol" size="1" value="Quality" />
				<attribute name="style" get="1" set="1" type="symbol" size="1" value="enum" />
			</attributelist>
		</attribute>
	</attributelist>
	<jitterattributelist>
		<jitterattribute name="anchor" />
		<jitterattribute name="anim" />
		<jitterattribute name="animmode" />
		<jitterattribute name="automatic" />
		<jitterattribute name="axes" />
		<jitterattribute name="capture" />
		<jitterattribute name="dest_dim" />
		<jitterattribute name="drawto" />
		<jitterattribute name="enable" />
		<jitterattribute name="filterclass" />
		<jitterattribute name="inherit_all" />
		<jitterattribute name="inherit_color" />
		<jitterattribute name="inherit_depth" />
		<jitterattribute name="inherit_fog" />
		<jitterattribute name="inherit_material" />
		<jitterattribute name="inherit_poly" />
		<jitterattribute name="inherit_texture" />
		<jitterattribute name="inherit_transform" />
		<jitterattribute name="layer" />
		<jitterattribute name="material" />
		<jitterattribute name="name" />
		<jitterattribute name="position" />
		<jitterattribute name="shader" />
		<jitterattribute name="tex_map" />
		<jitterattribute name="tex_plane_s" />
		<jitterattribute name="tex_plane_t" />
		<jitterattribute name="texanchor" />
		<jitterattribute name="texrotate" />
		<jitterattribute name="texture" />
		<jitterattribute name="texzoom" />
	</jitterattributelist>
	<!--EXAMPLE-->
	<examplelist>
		<example caption="Render scene passes with shader processing" img="jit.gl.pass.png" />
	</examplelist>
	<!--SEEALSO-->
	<seealsolist>
		<seealso name="jit.gl.node" />
		<seealso name="jit.gl.slab" />
		<seealso name="jit.gl.pix" />
		<seealso name="jit.gl.shader" />
		<seealso name="jit.gl.camera" />
		<seealso name="jit.gl.light" />
	</seealsolist>
	<discussion>
		Each JXP file contains one or more &lt;pass&gt; effects. Each pass-effect contains one or more &lt;subpass&gt; tags. The &lt;subpass&gt; specifies a shader file for processing its pass, using the &quot;file&quot; attribute, or a <o>jit.gl.pix</o> gen file using the &quot;gen&quot; attribute and contains one or more &lt;input&gt; tags. The final subpass can specify which buffer to write to using the &quot;output&quot; attribute. Certain attributes of <o>jit.gl.slab</o> or <o>jit.gl.pix</o> can also be set here (e.g. <at>dimscale</at>, <at>rect</at>). The input specifies its texture source by setting either &quot;name&quot; or &quot;source&quot;. Name can be any named texture, and source can be one of the following:
		<br />
		COLOR - the <o>jit.gl.node</o> color render target (or color output of previous jit.gl.pass)
		<br />
		NORMALS - the <o>jit.gl.node</o> normals render target + depth in alpha channel
		<br />
		VELOCITY - the <o>jit.gl.node</o> velocity render target
		<br />
		PREVIOUS - the preceding subpass output
		<br />
		HISTORY - the previous jit.gl.pass output
		<br />
		TEXTURE0..N - the jit.gl.pass texture attribute list of texture names
		<br />
		<br />
		Pass effects that request NORMALS or VELOCITY as input sources require <o>jit.gl.material</o> objects bound to any geometry objects in the scene. These effects include <i>depth</i>, <i>dof</i>, <i>motionblur</i>, and <i>ssao</i>.
	</discussion>
</c74object>
